The Delphi Magazine: Complete Article Detail
Under Construction: Build Your Own Components | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 1 : April 1995 | View article | View source code |
Summary | Bob Swart kicks off his regular column by showing us how to get started on writing Delphi components, using Date and Agenda components as his examples. | ||
Keywords | Agenda component; Building components; Date components; Date formats; Hex and Roman formats; Under Construction Column |
Moving Up: Borland Pascal | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 1 : April 1995 | View article | No source code |
Summary | Dave Jewell gives the Borland Pascal developers amongst us the low down on moving up to Delphi | ||
Keywords | As, Is and In keywords; Borland Pascal; Case optimisations; Class versus Object; Exception handling; Open arrays; Properties; Result variable in functions |
The Delphi Idiom | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 1 : April 1995 | View article | No source code |
Summary | Steve provides an insider's introduction to Delphi's features and capabilities. | ||
Keywords | Exception handling; Message handling |
Optimising Display Updating | |||
---|---|---|---|
Authors | Mike Scott | Type: Article | |
Issue | 1 : April 1995 | View article | View source code |
Summary | Mike shows how to make your screen refreshes really fast. | ||
Keywords | Clipping regions; Graphics; Paint method; Reducing flicker; Screen refresh |
Inroducing Client/Server | |||
---|---|---|---|
Authors | Sundar Rajan | Type: Article | |
Issue | 1 : April 1995 | View article | No source code |
Summary | A beginner's guide to client/server development, explaining some key principles and the benefits to be gained from using Delphi. | ||
Keywords | 2-schema and 3-schema; Client/server |
Delphi Internals: Using and Writing DLLs | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 1 : April 1995 | View article | No source code |
Summary | Dave shows how to call DLLs in Delphi applications and how to write your own. | ||
Keywords | Delphi Internals column; EXTERNAL keyword; Using DLLs; WINPROCS unit; Writing DLLs |
Book Review: "Inside Windows 95" by Adrian King | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 1 : April 1995 | View article | No source code |
Summary | |||
Keywords | Adrian King; Book reviews; Inside Windows 95; Windows 95 |
Using the Borland Visual Solutions Pack | |||
---|---|---|---|
Authors | Jeroen Pluimers | Type: Review | |
Issue | 1 : April 1995 | View article | View source code |
Summary | A review of and tips on using the Visual Solutions Pack of VBX controls with Delphi, including an example RTF editor. | ||
Keywords | Installing VBX controls; RTF editor; Reviews; Visual Solutions Pack |
Animation Made Easy | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 1 : April 1995 | View article | View source code |
Summary | How to achieve simple sprite animation using Delphi. | ||
Keywords | Animation; BitBlt; Graphics; Screen flicker; Sprites; Using bitmaps |
Review: The Chief's Installer Pro | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 1 : April 1995 | View article | No source code |
Summary | Bob Swart looks into this shareware Windows installation program which is ideal for installing your Delphi applications -- even better, it is included on the free disk with Issue 2. | ||
Keywords | Chief's Installer Pro; Dr A Olowofoyeku; Install programs; Reviews; The African Chief |
Failure to initialise IDAPI error | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 1 : April 1995 | View article | View source code |
Summary | The BDE requires SHARE.EXE to be loaded or this error results. | ||
Keywords | BDE Error code $2C09; Failure to initialise IDAPI; SHARE.EXE |
Component in Design or Runtime mode? | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 1 : April 1995 | View article | View source code |
Summary | Use csDesigning flag. | ||
Keywords | Component building; Design or runtime mode; csDesigning |
TEXT file type | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 1 : April 1995 | View article | View source code |
Summary | Use SYSTEM.TEXT to specify this file type. | ||
Keywords | Error 21: Error in type; SYSTEM unit; TEXT file type |
Private, Public, Published identifiers | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 1 : April 1995 | View article | View source code |
Summary | Private, Public, Published identifiers explained. | ||
Keywords | Component building; Private; Public; Published |
Working with MS Access files in Delphi 1 | |||
---|---|---|---|
Authors | Chris Frizelle , Ralph Friedman | Type: Clinic | |
Issue | 1 : April 1995 | View article | View source code |
Summary | How to use MS Access .MDB files in Delphi 1 | ||
Keywords | .MDB files; Access ODBC driver; MS Access files; ODBC |
Assigning initial property values | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Tip | |
Issue | 1 : April 1995 | View article | View source code |
Summary | How to assign initial values to properties in your components. | ||
Keywords | Component building; Initialising properties; Properties; Property Default value; Property initial values |
Auto-deleting event handler code | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Tip | |
Issue | 1 : April 1995 | View article | View source code |
Summary | |||
Keywords | Event handlers |
ExitWindows | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Tip | |
Issue | 1 : April 1995 | View article | View source code |
Summary | Correct definition for the ExitWindows API function | ||
Keywords | ExitWindows API function; Windows API |
Building Quality Help Systems | |||
---|---|---|---|
Authors | Robert Palomo | Type: Article | |
Issue | 2 : July 1995 | View article | No source code |
Summary | Robert shows how to keep your users happy by designing and writing better Help systems for your applications. | ||
Keywords | Building Help; Designing Help; Help authoring tools; Hypergraphics; Hypertext |
Book Review: Delphi Programming For Dummies by Neil Rubenking | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 2 : July 1995 | View article | No source code |
Summary | |||
Keywords | Book reviews; Delphi for Dummies; Neil Rubenking |
Subclassing Windows | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Brian Long shows how to customise your windows and controls using various subclassing techniques | ||
Keywords | Building components; Deriving objects; FreeObjectInstance; FreeProcInstance; MakeObjectInstance; MakeProcInstance; Message handlers; OnMessage; PostMessage; ProcessMessages; SendMessage; SetWindowLong; Subclassing; TMessage; Windows API; Windows messages |
Under Construction:Tic-Tac-Toe | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Bob Swart's component-building column focusses on encapsulating DLLs into Delphi components, by means of a tic-tac-toe game example (better known to British readers as noughts-and-crosses!) | ||
Keywords | Building components; Component expert; Component properties; DLL Import units; DLLs; Encapsulating DLLs; Exceptions; Explicit DLL import; Implicit DLL import; LoadLibrary; Tic-Tac-Toe; Under Construction column |
Moving Up: Visual Basic | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 2 : July 1995 | View article | No source code |
Summary | Dave Jewell with helpful advice for those moving to Delphi from VB | ||
Keywords | Variant records; Visual Basic |
Drag & Drop is Easy... | |||
---|---|---|---|
Authors | Stuart Lunn | Type: Article | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Stuart Lunn shows how to make your applications accept files dragged and dropped from Windows File Manager, with other handy tips along the way | ||
Keywords | DeleteMenu; Drag and Drop; DragAcceptFiles; DragQueryFile; DragQueryPoint; GetSystemMenu; HWND_TOPMOST; Icon on top; InsertMenu; ModifyMenu; SC_ICON; SetCharacteristics; SetWindowPos; ShellAPI; Start Iconized; Start as icon; System menu; WM_DROPFILES; WM_QUERYOPEN; WM_SYSCOMMAND; WindowState; Windows API; Windows messages |
Delphi Internals: Undocumented Secrets, Part 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 2 : July 1995 | View article | No source code |
Summary | Dave Jewell delves under the bonnet of Delphi to look at form resources and how to implement unions | ||
Keywords | Absolute; Delphi Internals column; Delphi forms; Form resources; Resource Workshop; Resource files; Sel variable; Undocumented; Unions |
Trim String functions | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to trim strings | ||
Keywords | Strings; Trim function for strings |
Calling secondary forms | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to call secondary forms | ||
Keywords | Calling forms; Forms; Hide for forms; Secondary forms; Show for forms |
Menu item separators | |||
---|---|---|---|
Authors | Arjan Jansen | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to add menu item separators in the Menu Designer | ||
Keywords | Menu Designer; Menu separators; Menus |
Resizing columns of a TStringGrid | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to resize columns in a TStringGrid | ||
Keywords | FixedCols; Resizing grid columns; TStringGrid |
Closing a form on starting an application | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Closing a form on starting an application | ||
Keywords | Closing forms; Forms |
Removing scroll bars from TDBGrid | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Removing scroll bars from TDBGrid | ||
Keywords | Removing scroll bars; Scroll bars; ScrollBars property; TDBGrid scroll bars |
Shelling out to another application | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to shell out and call another application from a Delphi application. | ||
Keywords | Calling applications; HandleMessage; PeekMessage; Shelling out; WinExec; Windows API |
Editor Shortcuts | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Shortcut keys for the Delphi code editor | ||
Keywords | Delphi IDE; Editor shortcuts; Keyboard shortcuts |
Customising the toolbar | |||
---|---|---|---|
Authors | Nick Hodges | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to customise the Delphi IDE toolbar | ||
Keywords | Custimising the Toolbar; Delphi IDE |
Smaller executable files | |||
---|---|---|---|
Authors | Nick Hodges | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to make your executable files smaller from the Delphi 1 IDE and using W8LOSS.EXE | ||
Keywords | Smaller EXE files; W8LOSS.EXE |
File utility routines | |||
---|---|---|---|
Authors | Nick Hodges | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Where to find handy routines to copy, move and execute files | ||
Keywords | File copy; File execute; File move; File utility routines |
Passing variable numbers of parameters | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to write procedures and functions which can take a variable number of parameters using the TVarRec type | ||
Keywords | Parameter passing; Procedures and functions; TVarRec; Variable number parameters |
Exporting classes from DLLs | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to write DLLs which export Delphi classes | ||
Keywords | DLLs; Exporting classes from DLLs; Writing DLLs; abstract; cdecl; export; virtual |
WinCRT must appear last in the USES statement | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | To avoid error 85 "; expected" when using the WinCRT unit, ensure WinCRT appears last in your USES statement | ||
Keywords | USES; WinCRT; error 85 |
TDBGrid bug: FixedColor is ignored | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | In Delphi 1 the FixedColor property does not work, this provides a fix | ||
Keywords | Delphi 1 bugs; FixedColor in TDBGrid; TDBGrid |
A Windows Desktop Canvas and Non-Client area Canvas | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Implementation of a Canvas object for the Windows desktop area, which can be useful for screen savers, splash screens etc; plus a Canvas for a window's non-client area (for customising window frames). | ||
Keywords | Canvas; TCanvas; Window NC area; Window non-client area; Windows Desktop canvas |
Using RES bitmaps | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | How to load RES file bitmaps in Delphi | ||
Keywords | Bitmaps; Graphics; RES format bitmaps; TBitmap |
Smart IDE | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | Customising the Delphi IDE for faster operation on a laptop | ||
Keywords | COMPLIB.DCL; Delphi IDE; Laptop; Saving memory |
Clipboard Object | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 2 : July 1995 | View article | View source code |
Summary | A clipboard object, TMemoClipboard, which supports Delphi's TStrings object type for passing long text over the Windows clipboard. | ||
Keywords | Clipboard; TClipBoard; TStrings |
Book Reviews | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) , Steve Troxell | Type: Review | |
Issue | 3 : September 1995 | View article | No source code |
Summary | Bob Swart and Steve Troxell review 'Delphi Programming Explorer' and 'Delphi Developer's Guide' | ||
Keywords | Book reviews; Delphi Developers Guide; Delphi Programming Explorer; Steve Teixeira; Xavier Pacheco |
Preview: 32-Bit Delphi | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Article | |
Issue | 3 : September 1995 | View article | No source code |
Summary | What you've all been waiting for! Chris Frizelle has details on what to expect in Borland's new version of Delphi for Windows95 and NT | ||
Keywords | 32 bit BDE; Delphi 2 preview |
Surviving Client/Server: Getting Started With SQL, Part 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 3 : September 1995 | View article | No source code |
Summary | Steve Troxell kicks off a brand new column for Client/Server developers with the first of a 2-part series on the basics of the SQL language | ||
Keywords | ISQL; InterBase; Interactive SQL; Joining tables; SQL; SQL Join; SQL operators; SQL transactions; SQL: Adding records; SQL: BETWEEN; SQL: COMMIT; SQL: DELETE; SQL: INSERT; SQL: LIKE; SQL: ORDER BY; SQL: ROLLBACK; SQL: SELECT; SQL: SET; SQL: Sorting; SQL: UPDATE; SQL: VALUES; SQL: WHERE; SQL: Wildcards; SQL: copying records; Surviving Client/Server |
Custom Clipboard Formats | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Xavier Pachero explains how to put anything you like onto the Windows clipboard | ||
Keywords | Clipboard; Custom clipboard formats; RegisterClipboardFormat; Streams; TClipboard; TMemoryStream; Windows API |
Under Construcion: Customising Controls | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Bob Swart shows how to derive new components from existing ones, using a right-aligned edit control as an example | ||
Keywords | Adding properties; Alignment of text; Building components; Component palette bitmaps; Deriving components; Hiding properties; Prevent control resizing; Private; Published; Resource Workshop; Right aligned TEdit; SetBounds; TCustom... components; Under Construction column |
Moving Up: C and C++ | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 3 : September 1995 | View article | No source code |
Summary | Dave Jewell has some good advice for C/C++ developers trading up to Delphi | ||
Keywords | 32 bits; Allocating memory; C and C++; Conditional compilation; Converting C to Pascal; Count for ListBox; Create; CtoP C translator; DLL header conversion; Delphi for C programmers; Delphi for C++ programmers; Destroy; HeadConv expert; Huge pointers; ItemIndex; LB_SETCURSEL; Message handling; Porting 16 to 32 bits; Porting C to Pascal; Smart linking; WINDOWSX.H; WM_INITDIALOG; WinMain; Windows API; Windows messages; _hread; _hwrite; far declaration; implementation; interface; message cracker; pre-processor macros; static; unit |
Typecasting Explained: Part 1 | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Brian Long sheds much-needed light on the subject of typecasting, which even causes experienced developers to trip up! | ||
Keywords | HiWord; LoWord; Offset; Ofs; Pointers; Random numbers; Randomize; Seg; Segment; Segmented memory; SysUtils unit; Tag; Typecasting; Variable typecasts; initialization |
Writing Your Own Experts | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Bob Swart shows that creating Delphi experts isn't that hard, as he takes us through the steps of building a DLL Skeleton Generator Expert | ||
Keywords | AddExitProc; Building DLLs; C DLL Header converter; COMPLIB.DCL; CloseProject; Compiling DLLs; DLL skeleton expert; DLLs; Delphi IDE; ExitProc; Experts; Exporting from DLLs; ExptIntf unit; GetComment; GetIDString; GetStyle; HeadConv; Installing experts; OpenProject; Project Experts; TIExpert; TOOLINTF unit; ToolServices; Using DLLS written in C; Writing experts; esEnabled; esForm; esProject; esStandard |
Delphi Internals: Through The Language Barrier | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Dave Jewell continues his explanation of creating DLLs with Delphi, showing how to put Delphi forms into DLLs which can then be called from other languages | ||
Keywords | Borland Pascal; C/C++; Calling Delphi DLLs from C; Calling Delphi DLLs from VB; Creating DLLs; DLLs; Delphi Internals column; FormCreate; Hiding forms; Library keyword; ModalResult; Null terminated strings; PChar; Putting forms into DLLs; ShowModal; StrNew; StrPas; TCalendar; Using DLLS; Visual Basic; exports keyword; implementation |
Painting to a device context | |||
---|---|---|---|
Authors | Danny Thorpe | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Tricks used by Delphi when painting to a Device Context | ||
Keywords | DC; Device context; Painting; Windows API |
Menu shortcuts | |||
---|---|---|---|
Authors | Michael Williams | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | In Delphi 1 implementing menu shortcut keys sometimes didn't work. A fix is provided | ||
Keywords | Delphi 1 bugs; Menu shortcut keys; Menus; Menus unit; ShortCutToKey |
Navigating through forms | |||
---|---|---|---|
Authors | Nick Hodges | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | How to navigate through forms in the Delphi IDE using F12 or the Form list | ||
Keywords | Delphi IDE |
Uses clause in a DLL source file | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | A uses clause in a DLL source code file is not strictly necessary but not having one will cause a compilation error, which can be ignored | ||
Keywords | Building DLLs; DLLs; USES; Uses clause in DLL |
Turbo Debugger incorrect linker version | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Turbo Debugger 3.2 won't work with Delphi 1 -- use Turbo Debugger 4.6 from the RAD Pack or Borland C++ 4.51 or greater | ||
Keywords | Debugging; Incorrect linker version; Turbo Debugger |
How to make a window stay on top | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Using a form's fsStayOnTop property to make it stay on top of other windows | ||
Keywords | FormStyle; Making windows stay on top; Stay on top; Topmost window; fsStayOnTop |
Manipulating pixels in bitmaps | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Using a bitmap's Canvas to manipulate individual pixels | ||
Keywords | Canvas; Pixels property; TImage |
Popup menus | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 3 : September 1995 | View article | View source code |
Summary | How do you find which component on a form caused a popup menu to appear? The PopupComponent property doesn't work properly.. | ||
Keywords | KeyPreview; Popup menus; PopupComponent property |
Form designer: shortcut keys | |||
---|---|---|---|
Authors | Tony McKiernan | Type: Tip | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Moving controls on forms using Ctrl+cursor and Shift+cursor | ||
Keywords | Delphi IDE |
More editor shortcut keys | |||
---|---|---|---|
Authors | Arjan Jansen | Type: Tip | |
Issue | 3 : September 1995 | View article | View source code |
Summary | More shortcut keys for the Delphi IDE editor | ||
Keywords | Delphi IDE; Editor shortcut keys |
Replacing if..then..else | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 3 : September 1995 | View article | View source code |
Summary | How to replace clumsy if..then..else statements with clever typed constant constructs | ||
Keywords | if..then..else; typed constants |
Are we in range? | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 3 : September 1995 | View article | View source code |
Summary | Using sets to check if a numeric value is within a required range | ||
Keywords | checking range; in keyword; sets |
Book Review: Delphi Unleashed | |||
---|---|---|---|
Authors | Jeroen Pluimers | Type: Review | |
Issue | 4 : November 1995 | View article | No source code |
Summary | Jeroen Pluimers reviews Charlie Calvert's comprehensive Delphi guide | ||
Keywords | Book reviews; Charlie Calvert; Delphi Unleashed |
Inside TApplication | |||
---|---|---|---|
Authors | Nick Hodges , Hallvard Vassbotn | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Did You know all your Delphi programs have an extra zero sized window? Nick Hodges shows how to take advantage of TApplication's features, with extra tips from Hallvard Vassbotn too | ||
Keywords | Application; Application title; Cascade windows; CmdShow; ColorDialog; Command line; Component list; ComponentCount; CreateWindow; Drag and drop; DragAcceptFiles; EXEName; ExtractFileName; ExtractFilePath; FormCreate; FormStyle; HintColor property; Hints; HookMainWindow; Icon captions; Icon on top; Icon property; Message handling; NormalizeTopMosts; OnMessage event; OnMinimize event; ProcessMessages; RestoreTopMosts; SetWindowPos; ShowWindow; Stay on top; System unit; TApplication; Terminated; Tile windows; UnHookMainWindow; WM_WindowPosChanging; WinProcs unit; WindowState; Windows API; Windows messages; fsStayOnTop; wm_DropFiles; wm_Paint |
Surviving Client/Server: Getting Started With SQL, Part 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 4 : November 1995 | View article | No source code |
Summary | Steve Troxell continues his column with the second part of his explanation of the basics of SQL | ||
Keywords | SQL; SQL: AVG; SQL: COUNT; SQL: DISTINCT; SQL: GROUP BY; SQL: HAVING; SQL: MAX; SQL: MIN; SQL: ORDER BY; SQL: SUM; SQL: UNION; SQL: aggregate functions; SQL: duplicate rows; SQL: grouping data; SQL: limiting groups; SQL: select unique records; SQL: sorting; SQL: unions; Surviving Client/Server |
Under Construction: Component Help | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Bob Swart shows how to integrate help for developers using your compoents into Delphi's multihelp environment | ||
Keywords | Building components; Creating Windows Help; Creating component Help; DLL wrappers; DLLs; Encapsulating DLLS; Encoding binary files; Help files; Help keywords; KWGEN utility; UUDecode; UUEncode; Under Construction column |
Typecasting Explained: Part 2 | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | This time Brian Long covers message crackers, safe object typecasting and assembler typecasting | ||
Keywords | 32 bits; AS keyword; Assembler; BIOS data; BIOSCounter property; Delegation; GetBIOSCounter; IS keyword; Mem, MemW, MemL; Message crackers; Message handling; Msg message number; OnActivate; Reading directly from memory; Sender; TMessage; TMinMaxInfo; TObject; Timer; Typecasting; Typecasting objects; WM_GetMinMaxInfo; WParam and LParam; Win32; Windows API; Windows messages |
Customised Logins | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Xavier Pacheco explains how to customise Delphi's database login features to give your applications that extra zing! | ||
Keywords | BDE configuration; Customised database logins; Database; InterBase; LogOff and LogOn again; Login dialog; LoginDlg; LoginParams; LoginPrompt; OnLogin event; TDatabase; TDataset |
Delphi Internals: Moving Up to 32-Bits | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Dave Jewell shows how to get your code ready for Delphi32, and even start making Windows 95's 32-bit calls with 16-bit Delphi! | ||
Keywords | 32 bit code in Delphi 1; 32 bits; ANSIChar; AnsiString; Asssember; Call32NT; Cardinal; Char; Delphi 1 to Delphi 2; Delphi Internals column; Generic thunk; H+ compiler directive; PolyBezier; Porting to 32 bits; SetLength; ShortString; SmallInt; Stack layout; String; Thunking; WideChar; WideString; lParam; wParam |
Please Call Later... | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | The first of a three-part series from Brian Long which aims to illuminate the mysteries of callbacks in Windows and the Borland Database Engine | ||
Keywords | BDE; BDE callbacks; Callbacks; Callbacks in DLLs; DLLs; DPMI; EnumChildWindows; EnumWindows; Finding all the windows; Finding child windows; Fixed segments; FreeProcInstance; GPF; GetProcAddress; Interrupt handlers; InterruptRegister; Interrupts; K+ compiler directive; MMSYSTEM; MakeProcInstance; Multimedia library; NotifyRegister; Protected mode; Real mode; Real mode interrupts; ShowMessage; Smart callbacks; SysUtils unit; Thunking; Timers; ToolHelp; Trapping GPFs; Windows API; dbiRegisterCallback; stdcall; timeSetEvent |
Performance Optimisation | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Bob Swart is well known as an expert in making applications go faster; this is the first of a three-part series in which he reveals his secrets... | ||
Keywords | Accurate timers; Algorithms; BTree; Binary search; Bubble sort; Compiler options; Data structures; Delphi IDE; Efficiency; GetTickCount; Linker options; Optimising code; Performance optimisation; Quick Sort; Searching; Sorting; Speed; TDirectoryOutline; Timing code; Turbo Profiler |
Left padded strings | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Left zero fill for a numeric string | ||
Keywords | Left padded strings; Left zero fill for numbers |
Error 200: published not allowed in this class | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Class requires $M+ compiler directive if it is to have published parts | ||
Keywords | $M+ compiler directive; Building components; Error 200; RTTI; Run time type information; published |
Exception handling | |||
---|---|---|---|
Authors | Nick Hodges | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Exception handling: use of Break on Exceptions option in Options|Preferences|Environment page in the IDE | ||
Keywords | Break on except option; Delphi IDE; Exception handling; Exceptions |
Removing pages from the component palette | |||
---|---|---|---|
Authors | Mike Orriss | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | How to remove pages from the component palette | ||
Keywords | Component palette; Delphi IDE; Removing palette pages |
Initialization section for unit startup code | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Initialization section for unit startup code | ||
Keywords | Initialization; Unit startup code |
Changing Cursors | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | How to change the mouse cursor | ||
Keywords | Changing cursors; Cursors; Mouse cursor; crHourGlass |
Accelerator keys | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Accelerator keys don't respond to Alt key | ||
Keywords | Accelerator keys |
Extracting icons from programs and DLLS | |||
---|---|---|---|
Authors | Nick Hodges | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Sample code to extract an icon from a program or DLL | ||
Keywords | DLLS; Extracting icons; Icons |
Re-reading directory using FileListBox | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Forcing FileListBox to re-read a directory | ||
Keywords | FileListBox; Re-reading directory |
Using RC files | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Linking an RC file into an executable | ||
Keywords | $R compiler directive; Linking resource files; RC resource files |
Placing objects into a StringGrid | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Placing objects into a StringGrid | ||
Keywords | TStringGrid |
Calculating difference between 2 dates | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Clinic | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Calculating difference between 2 dates | ||
Keywords | Date arithmetic; Date differences; Dates |
Windows Resource Li mits | |||
---|---|---|---|
Authors | Roy Nelson | Type: Tip | |
Issue | 4 : November 1995 | View article | View source code |
Summary | How to overcome problems of exceeding available Windows resources, usually evidenced by the "Error creating window" message | ||
Keywords | DestroyHandle; EOutOfResources; Error creating window; GetFormImage; MDI applications; Maximum number of windows; TTabbedNotebook; Windows API; Windows resource limits |
Arrays over 64Kb in Delphi 1 | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 4 : November 1995 | View article | View source code |
Summary | How to create arrays larger than 64Kb in Delphi 1 | ||
Keywords | 64Kb variable size limit; Arrays; Huge arrays |
Hiding the Titlebar | |||
---|---|---|---|
Authors | Claus Ziegler | Type: Tip | |
Issue | 4 : November 1995 | View article | View source code |
Summary | How to show and hide a window titlebar when an application is running | ||
Keywords | BorderStyle; GetWindowLong; SetWindowLong; Titlebar: show and hide; Windows API |
Creating Paradox auto-increment fields | |||
---|---|---|---|
Authors | Stephen Thomspon | Type: Tip | |
Issue | 4 : November 1995 | View article | View source code |
Summary | Using a TQuery to create a Paradox table containing auto-increment fields | ||
Keywords | Auto increment fields; Paradox tsble; SQL; SQL: CREATE INDEX; SQL: CREATE TABLE; TQuery |
Update: Custom Clipboard Formats | |||
---|---|---|---|
Authors | Xavier Pacheco , Hallvard Vassbotn | Type: Article | |
Issue | 4 : November 1995 | View article | View source code |
Summary | An update to Xavier Pacheco's article in Issue 3, courtesy of Hallvard Vassbotn with some minor corrections. | ||
Keywords | Clipboard; Custom clipboard formats |
Delphi 2.0: 32-Bit BDE Overview | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Article | |
Issue | 5 : January 1996 | View article | No source code |
Summary | Details of some more goodies in the 32-bit version of Delphi! | ||
Keywords | 32-bit; BDE; Database |
Using Resource Files In Delphi | |||
---|---|---|---|
Authors | Dave Bolt , Ken Otto , Brian Long | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Dave Bolt uncovers the mysteries of using bitmaps, icons and cursors; Ken Otto chips in on creating custom cursors and Brian Long adds a note on using resources by number rather than name | ||
Keywords | $R compiler directive; Animated cursor; Animation; BMP files; Bitmaps; Creating cursors; Cursors; Custom cursors; EFOpenError; Icons; Image Editor; LoadBitmap; LoadCursor; LoadIcon; RC files; RES files; Resource files; Resource numbers; Resource scripts; TImage; WM_NCMOUSEMOVE; Windows API; Windows messages |
A Screen Capture Utility | |||
---|---|---|---|
Authors | Stuart Lunn | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Stuart Lunn takes us through this example project, illustrating some very handy techniques along the way | ||
Keywords | BitBlt; Bitmaps; Cliboard: images; Clipboard; Cursors; Device context; GetDC; GetDesktopWindow; GetSystemMetrics; GetWindowDC; Inverting bitmaps; Inverting colours; Mouse handlers; Rubber banding; Screen capture; Windows API; Windows desktop |
Typecasting Explained: Part 3 | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Brian Long concludes his series by looking at how safe typecasting can make an example project easier to code and more efficient too: a database table viewer | ||
Keywords | $R compiler directive; Forms as resources; Initialising variables; Linking resources; RC files; Resource files; Resource scripts; Typecasting; Typed constants |
Surviving Client/Server: TTable vs TQuery | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Which is best for your project? - Steve Troxell has all the details to help you make an informed decision | ||
Keywords | Client/Server; Dynamic SQL; Generating SQL; Modifiable data sets; Parameterized queries; RequestLive; SQL; SQL prepare; Surviving Client/Server; TQuery; TTable; TTable versus TQuery; Table navigation; Unidirectional |
Under Construction: Custom Events | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Bob Swart describes how to add custom events and event handlers to your components | ||
Keywords | Building components; Custom events; Event handlers; Event signallers; Message handling; TNotifyEvent; UUEncode & UUDecode; Under Construction column; WM_SETCURSEL; Windows API; Windows messages |
Please Call Later... | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | The second of a three-part series from Brian `Long showing how to use Windows and BDE calbacks | ||
Keywords | BDE; BDE Help file; BDE callbacks; Callbacks; DBIERRS.INT; DBIPROCS.INT; DBITYPES.INT; Database; DbiRegisterCallback; FreeProcInstance; MakeProcInstance; MessageDlg and callbacks; PostMessage / SendMessage; SendMessage; ShowMessage and callbacks; TCallBack; Table changed callback; Thunking; Thunks; WindowState; Windows API; cbTableChanged |
Delphi Internals: CPU Type | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Build a component to identify current and future CPU types with Dave Jewell | ||
Keywords | 80386, 80486; Assembler; CPU type; CPUID instruction; Delphi Internals column; GetWinFlags; Intel processor documents; Pentium; Pentium Pro; Processor identification; Windows API |
Review: Eschalon Power Controls | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 5 : January 1996 | View article | No source code |
Summary | |||
Keywords | Eschalon power controls; Reviews |
Book Review: Delphi How-To | |||
---|---|---|---|
Authors | Steve Troxell | Type: Review | |
Issue | 5 : January 1996 | View article | No source code |
Summary | |||
Keywords | Book reviews; Delphi How-To; Gary Frerking |
Performance Optimisation | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Bob Swart continues his series on supercharging your Delphi applications | ||
Keywords | Assembler; BASM; Built in assembler; Callbacks; DLLs; Dynamic methods; Efficiency; Encoding binary files; Exception handling; Exceptions; Exceptions and performance; InLine macros; Linking external assember; LoadLibrary; Loading DLLs; OBJ files; Open arrays; Performance Optimisation; RTTI; Run time type information; UUDecode; UUEncode; Using DLLs; Virtual methods; W8LOSS |
Review: Orpheus | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 5 : January 1996 | View article | No source code |
Summary | |||
Keywords | Data entry controls; Data validation; Formatted data entry; Orpheus; Reviews; TurboPower |
Radio group focus | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 5 : January 1996 | View article | View source code |
Summary | How to set focus to radio buttons within a radio group | ||
Keywords | ActiveControl; Radio button focus; Radio group; SetFocus |
Drag and drop onto DBGRid cells | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 5 : January 1996 | View article | View source code |
Summary | How to drag and drop values onto DBGrid cells | ||
Keywords | DBGrid; Drag and drop; Drag and drop to TDBGrid; Drag and drop to TStringGrid; TStringGrid |
256 colour images | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Bugs displaying 256 colour images using TImage | ||
Keywords | 256 colours; Bitmaps; Stretch; Timage and 256 colours |
Implementing generic Cliboard support | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 5 : January 1996 | View article | View source code |
Summary | How to implement clipboard support across a number of different controls | ||
Keywords | Clipboard; Generic clipboard support |
Control arrays | |||
---|---|---|---|
Authors | Mark Mamone | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | How to implement Visual Basic style control arrays in Delphi | ||
Keywords | Control arrays; Visual Basic |
256 colour bitmaps | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Loading a 256 colour bitmap from a resource | ||
Keywords | 256 colour bitmaps; Bitmaps; LoadFromStream; Resource files; Streams; TBitmap; TBitmapFileHeader |
Extending TMenu so it can add menu items automatically | |||
---|---|---|---|
Authors | Michael Ax | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Extending TMenu so it can add menu items automatically | ||
Keywords | Adding menu items; Menus; TMenu |
Processing multiple selections in a listbox | |||
---|---|---|---|
Authors | Margot Nelson | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Processing multiple selections in a listbox | ||
Keywords | ExtendedSelect; Listbox; MultiSelect; Multiple selection in listbo; TListbox |
Reading database records fast | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | How to read a block of records from a table in one go to enhance performance | ||
Keywords | BDE; Database; DbiErrs unit; DbiGetField; DbiProcs unit; DbiReadBlock; DbiTypes unit; Reading blocks of records |
Correct handling of WM_EndSession | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | Problems with tables not being closed correctly and Paradox lock files not being deleted can be due to incorrect handling by Delphi of the Windows WM_EndSession message | ||
Keywords | HookMainWindow; HookWindow; Lock files not deleted; Message handling; Paradox lock files; TApplication; Table not closed; WM_EndSession; WM_QueryEndSession; WM_Quit; Windows API; Windows messages |
Simpler PChars | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 5 : January 1996 | View article | View source code |
Summary | A simpler way of implementing PChar types (null terminated strings) | ||
Keywords | Null terminated string; PChar; Simpler PChar |
File Handling | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Brian Long kicks off a series on working with files in Delphi with a run-down of some of the basics you'll need | ||
Keywords | Assign and AssignFile; BlockRead; BlockWrite; ExistFile; File buffer; File handling; File of ...; File records; File variables; Flush; Read file records; Reset; Rewrite; Seek; SetTextBuffer; System unit; Text and TextFile; Text file buffer; Typed files; Untyped files; Write file records |
Under Construction: Property Editors | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Bob Swart shows how to add custom property editors to your components, finishing up with a new image property editor you can plug straight into Delphi | ||
Keywords | Building components; DsgnIntf unit; Encoding binary files; GetAttributes; Property editors; RegisterPropertyEditor; TEnumProperty; TPictureEditor; TPropertyAttributes; TPropertyEditor; Tools API; UUdecode; UUencode; Under Construction column; paAutoUpdate; paDialog; paMultiSelect; paReadOnly; paSortList; paSubProperties; paValueList |
Enhanced VBX Support | |||
---|---|---|---|
Authors | Stephen Posey | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Stephen Posey describes how to get more out of Delphi 1.0x's support for VBX controls | ||
Keywords | ChartFX; Enhanced VBX support; TVBXControl; Using VBXs; VBX controls |
Surviving Client/Server: Stored Procedures Part 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Steve Troxell begins a two-part examination of using SQL stored procedures and triggers in your client/server applications | ||
Keywords | Client/Server; Data security; ExecProc; Interbase; Open; ParamByName; Params; Prepare for SQL query; SQL; SQL: EXECUTE PROCEDURE; SQL: stored procedures; Security; Stored procedures; Surviving Client/Server; TStoredProc; Triggers; Unprepare for SQL query |
Please Call Later... | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | The concluding part of Brian Long's series showing how to use Windows and BDE callbacks | ||
Keywords | Callbacks; EnableExceptionHandler; InterruptRegister; LocalAlloc; Memory allocation; NotifyRegister; NotifyUnRegister; OutputDebugString; SetMenu; SysUtils unit; TFaultHandler; TFaultResponse; TNfyLogParamError; Thunking; Thunks; ToolHelp DLL; Windows 95; Windows API; dhDebugHooked |
Private Investigations | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Everything you ought to know about private, public, protected and published declarations but couldn't find in the manual, ably explained by Bob Swart | ||
Keywords | Building components; Class; Component properties; Private keyword; Property keyword; Protected keyword; Public keyword; Published keyword |
Delphi Internals: How Not To Write An Operating System | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Dave Jewell starts assembling a set of useful system-level routines, beginning with floppy disk identification and volume labels | ||
Keywords | 32-bits; BIOS; CMOS data; DOS calls; DOS interrupts; Delphi Internals column; Disk drive; DiskSize; FCB; File Control Block; FindFirst; FindNext; GetMID; GetVolumeInformation; GlobalDOSAlloc; Identifying floppy disks; Identifying floppy drives; Intr; Long filenames; MIDINFO; SetMID; SetVolumeLabel; SysUtils unit; TSearchRec; Volume labels; WinDOS unit; Windows 95; Windows API; Windows NT |
Building TSmiley | |||
---|---|---|---|
Authors | Nick Hodges | Type: Article | |
Issue | 6 : February 1996 | View article | View source code |
Summary | If you've been left behind in the component building revolution, get back to basics with Nick Hodges | ||
Keywords | Bitmaps; Building components; Component properties; Design time and run time; Event handlers; LoadBitmap; Mouse handlers; Property editors; RTTI; RegisterPropertyEditor; Run time type information; TComponentState; TMouseEvent; Windows API; property keyword |
Delphi Books: A Comparative Overview | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) , Steve Troxell | Type: Review | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Bob Swart and Steve Troxell have evaluated 15 Delphi books so you can decide which are the best for your needs - we've even included a database app on the disk with all the reviews in! | ||
Keywords | Book reviews; Delphi 1 books overview |
Review: LightLib Images | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 6 : February 1996 | View article | No source code |
Summary | We take a look at this image handling component library from DFL Software | ||
Keywords | BMP; DFL Software; GIF; Image handling library; JPG JPeg; LightLib Images; PCX; PNG; Reviews; Scanner support; Scanning; TGA; TIF; TWAIN |
DDE Server application and service names | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | DDE Server application and service names | ||
Keywords | DDE; DDE Service name; DDE application name; DDEMAN unit; DDEMgr |
TDBLookUpCombo.OnClick event | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | TDBLookUpCombo.OnClick event doesn't fire when you click on the drop down list | ||
Keywords | OnClick event; TDBLookUpComboBox |
Microsoft products and floating point | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Incompatibilities between Borland and Microsoft floating point implementation | ||
Keywords | DLLs; Floating point; Microsoft C/C++; Microsoft floating point; NDP stack; Visual Basic |
Calling a C DLL | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Calling a C DLL | ||
Keywords | Calling DLLs written in C; DLLs; Pass by reference; Pointers; const Pass by reference; var Pass by reference |
Setting properties en masse | |||
---|---|---|---|
Authors | Brian Long , Roy Nelson | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | How to set the same property for multiple components | ||
Keywords | Properties; RTTI; Run time type information; TypInfo unit |
Tracing SQL statements | |||
---|---|---|---|
Authors | Brian Long , Steve Axtell | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | How to trace the actual SQL statements send by a TTable component | ||
Keywords | BDE; IDAPI section WIN.INI; SQL; SQLTrace in WIN.INI; WIN.INI |
Error reading symbol file message | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Error reading symbol file message | ||
Keywords | Autosave options; Delphi IDE; Error reading symbol file; Symbol file |
Easter eggs, credit boxes... | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Easter eggs, credit boxes... | ||
Keywords | Credit lists; Delphi IDE; Easter eggs |
Enumerated and Set types | |||
---|---|---|---|
Authors | Michael Ax | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Using enumerated and set types as an alternative to translation tables | ||
Keywords | Enumerated types; GetEnumName; Set types |
Using PChar types in components | |||
---|---|---|---|
Authors | Michael Ax | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Using PChar types in components | ||
Keywords | Building components; PChar |
Object oriented table | |||
---|---|---|---|
Authors | Michael Ax | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Object oriented table | ||
Keywords | Object oriented table |
Debugging TListbox and TComboBox lists | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Debugging TListbox and TComboBox lists | ||
Keywords | Debugging TComboBox; Debugging TListbox; TComboBox; TListbox |
Customising forms using CreateParams | |||
---|---|---|---|
Authors | Brian Long , Soenke Pries | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Customising forms using CreateParams | ||
Keywords | CreateParams; CreateWindow; Window style flags; Windows API |
TNotebook Page Backgrounds | |||
---|---|---|---|
Authors | Stewart McSporran | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | How to efficiently use a bitmap image as the background to a group of notebook pages | ||
Keywords | OnPageChanged; TNotebook; TNotebook page background |
Removing unnecessary code | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 6 : February 1996 | View article | View source code |
Summary | Removing unnecessary code | ||
Keywords | Removing unnecessary code; TBevel; TLabel |
Building A Database Expert | |||
---|---|---|---|
Authors | Marco Cant∙ , Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Marco Cantu and Bob Swart show how to build a 16- and 32- bit database expert | ||
Keywords | Building experts; Class references; Converting classes; CreateModule; Database; Database expert; DatabaseCount; Experts; File streams; GetStyle; GetTableNames; IsValidIdent; Memory streams; OnPageChanged; ReadComponentResFile; Session; Streaming forms; Streams; TFileStream; TIMemoryStream; TMemoryStream; TSession; ToolServices; Typecasting; Valid identifier; WriteComponentResFile |
File Handling: Part 2 | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Brian Long covers error handling for file operations and shows how file and record locking is done | ||
Keywords | $I compiler directive; ERuntimeError; ErrorProc; Exception handling; Exceptions; File error handling; File handles; File handling; File locking; File sharing; File variable record; FileExists; FileMode values; I/O error handling; IOResult error values; LockTable; Long filenames; Record locking; Reset; SHARE.EXE; TFileRec; TTextRec |
Surviving Client/Server: Stored Procedures Part 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Steve Troxell concludes his look at SQL stored procedures and triggers | ||
Keywords | Cascading delete; Client/Server; ExecProc; ISQL; InterBase; InterBase script files; Multiple queries; Multiple row result sets; ParamByName; Params; SQL; SQL: CONNECT; SQL: CREATE PROCEDURE; SQL: FETCH; SQL: FOR ... DO; SQL: RETURNS; SQL: SET TERM; SQL: SUSPEND; SQL: stored procedures; Stored procedures; StoredProcName; Surviving Client/Server; TStoredProc |
Under Construction: Data-Aware Components | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Bob Swart shows how to build your own data-aware controls, using a control to play WAV sound data from BLOB fields as an example | ||
Keywords | Building components; Building data aware controls; Data aware WAV button; Data aware components; DataSet; LoadFromFile; Memory streams; MemoryStream; Multimedia; Sound files; Streams; TDataSource; TMemoryStream; Under Construction column; WAV files; Windows API; sndPlaySound |
Review: TOLEAutomationClient | |||
---|---|---|---|
Authors | Micha Somers | Type: Review | |
Issue | 7 : March 1996 | View article | No source code |
Summary | Micha Somers explains OLE Automation and reviews a component from New Zealand which takes a good deal of the hard work out of implementing it in your own applications | ||
Keywords | MS Excel; MS Word; OLE Automation; OLE mirror classes; Reviews; TOleAutomationClient; Windows API; Word Basic; Word.Basic OLE object |
Delphi Intenals: Disk Serial Numbers & CD-ROMs | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Dave Jewell shows how to get and set disk serial numbers as well as identify CD-ROM drives | ||
Keywords | Assembler; CD ROM detection; CD: program running from?; DOS Interrupts; DPMI; Delphi Internals column; Disk serial number; Drive serial numbers; Floppy disk serial number; GetMid; GetVolumeInformation; GlobalDOSAlloc; Intr; MIDINFO; MSCDEX; Running from CD?; Security; Serial number; SetMid; Windows API |
Building A Joystick Component | |||
---|---|---|---|
Authors | Ken Otto | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Ken Otto explains how to interface joysticks with your Delphi applications using Windows' MMSYSTEM API | ||
Keywords | Building components; GlobalAlloc; GlobalLock; IBM Game Adaptor; Joystick interface; MMSYSTEM DLL; MultiMedia API; SND_ASYNC; Windows API; joyGetDevCaps; joyGetNumDevs; joyGetPos; joySetCalibration; sndPlaySound |
Review: Delphi RAD Pack | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 7 : March 1996 | View article | No source code |
Summary | Bob Swart evaluates Borland's add-on pack for Delphi 1.0 - just how useful is it in your daily development work? | ||
Keywords | Delphi RAD Pack; Resource Expert; Resource Workshop; Reviews; Turbo Debugger; VBX controls; Visual Solutions Pack |
YAST: Yet Another Stack Tracer! | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Hallvard Vassbotn delves deeply into your programs' operation to show how stack tracing can help in finding those really nasty bugs and presents a code unit you can plug straight in | ||
Keywords | Debugging; Stack dump; Stack frame; Stack tracing |
Review: Graphics Server And Light Lib Business | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 7 : March 1996 | View article | No source code |
Summary | We put these two charting libraries for Delphi through their paces | ||
Keywords | Bits Per Second; Charting Libraries; DFL Software; Data-aware graphs/charts; Graphics Server; Graphing libraries; LightLib Business; Reviews |
Changing default size of windows in Delphi IDE | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Changing default size of windows in Delphi IDE | ||
Keywords | DELPHI.INI; Default IDE window size; Delphi IDE; Object Inspector |
TDBLookupList and TDBLookupCombo | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | TDBLookupList and TDBLookupCombo need to be connected to a TTable not a TQuery | ||
Keywords | Database; TDBLookupCombo; TDBLookupList; TTable versus TQuery |
$C compiler directive to set segment attributes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | $C compiler directive to set segment attributes | ||
Keywords | $C compiler directive; MOVEABLE; PERMANENT; PRELOAD; Segment attributes |
Creating TField field objects programmatically | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Creating field objects programmatically without the Field Editor | ||
Keywords | Creating field objects; Dataset Designer; Fields Editor; TField |
Raising a number to a power | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Raising a number to a power | ||
Keywords | Exp; Power function; Raising a number to a power |
Windows file access denied error dialog | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | How to disable Windows file error dialog box | ||
Keywords | File Access Denied dialog; File error dialog box; File sharing; FileMode; Windows API |
Toggling shift key states | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Toggling scroll lock, caps lock, num lock key states | ||
Keywords | Caps lock key; GetKeyboardState; Num lock key; Scroll lock key; SetKeyboardState; Windows API |
TLabel Enabled property | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Setting TLabel Enabled property to False doesn't grey out the control. | ||
Keywords | Enabled property; FocusControl; FocusEnable; TLabel; TLabel Enabled property; Visible property |
Event chains in Delphi | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 7 : March 1996 | View article | View source code |
Summary | Event chains in Delphi | ||
Keywords | AddExitProc; Event chains; Event handlers; ExitProc |
Surviving Client/Server: All About Aliases | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Steve Troxell explains how to use the TDatabase and TSession components to configure the BDE in your applications | ||
Keywords | Adding an Alias; AliasName; BDE; BDE Configuration Utility; Building DLLs; Client/Server; Commit; Connected; DLLs; Database; Database Aliases; Database DLLs; Database Login dialog; DatabaseName; DbiAddAlias; GetAliasNames; GetAliasParams; GetDriverParams; GetStoredProcNames; GetTableNames; IDAPI.CFG; Rollback; Session; StartTransaction; Surviving Client/Server; SystemTables; TDatabase; TSession; Transaction processing |
Structured Exception Handling | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Bob Swart gives the lowdown on Delphi's excellent error handling, showing how to use exceptions effectively in your own applications | ||
Keywords | Error handling; Except on ... do ...; Exception handling; Exceptions; OnException; Raise; Raising exceptions; TApplication; TExceptionEvent; Terminate; Try ... Except |
File Handling 3: File Handles | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Having covered file variables and error handling, Brian Long now turns to using handles to manipulate files in your applications, with details of all the associated routines | ||
Keywords | 32-bits; BlockRead; BlockWrite; Errors on record size; File handles; File handling; File seek constants; FileCreate; FileOpen; FilePos; FileSize; FileWrite; Files; GetFileSize; LockFileArea; LockFileVar; Packed records; Seek; SetLength; SysUtils unit; TFileRec; TTextRec; Typed files; Untyped files; WinDos unit; WinProcs unit; Windows API; Windows unit; Writing over 64Kb to file |
Under Construction: Component Editors | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Bob Swart describes how to make use of Delphi's built-in component editors and shows how to build your own too | ||
Keywords | Building components; Component editors; DSGNINTF unit; ExecuteVerb; GetComponentEditor; GetVerb; GetVerbCount; RegisterComponentEditor; TComponentEditor; Under Construction column |
Modelling Systems With Components | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Paul Warren discusses how he used Delphi components to model decision trees and electronic circuits! | ||
Keywords | Building components; Decision trees; Electronic circuit model; Floating point properties; Modelling systems; Properties of Type Real; Property editors; Real type property editor |
Delphi Internals: Disk Formatting Basics | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Continuing his examination of disk fundamentals Dave Jewell explains what makes floppy disks tick and how to read and write to absolute sectors | ||
Keywords | 32-bits; Absolute disk read/write; Assembler; BPB; Bios Parameter Block; DOS calls; Delphi Internals column; DeviceIOControl; Disk formatting; Disk lock; Disk sectors; FAT; File allocation table; Floppy disks; GetMessage; Interrupt; Low level disk I/O; PeekMessage; Quick format; Read/write disk tracks; SHELL32.DLL; SHFormatDrive; Volume lock; Windows API |
Inside The BDE: Building A Data Dictionary | |||
---|---|---|---|
Authors | Brandon Smith | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Brandon Smith reveals some of the goodies inside the Borland Database Engine, building a handy data dictionary application for Delphi 1 along the way | ||
Keywords | Aliases; BDE; Creating DBF files; Creating dBase files; Creating databases; Creating fields; Creating tables; Data dictionary; Database; Database alias; Fields Editor; IDAPI; TBlobField; TDatabase; TField; TFloatField; TIntegerField; TSession |
A Delphi Bootstrap | |||
---|---|---|---|
Authors | John Braga | Type: Article | |
Issue | 8 : April 1996 | View article | View source code |
Summary | John Braga describes how he overcame application and BDE configuration problems in developing a diary system for networked users | ||
Keywords | File sharing; Finding windows; Launching applications; Network; Network applications; Shared tables |
Review: Image Lib 1.3 | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 8 : April 1996 | View article | No source code |
Summary | ImageLib from Skyline Tools handles the loading, display, manipulation and saving of a multitude of bitmap formats, should it be on your wanted list? | ||
Keywords | AVI files; BMP; Bitmap libraries; GIF; Graphics; ImageLib 1.3; JPG JPeg; MID MIDI files; MOV files; Multimedia; PCX; PNG; Reviews; Scanning; SkyLine Tools; Sound files; TIF; TWAIN; Video files; WAV files; WMF |
What tasks are running? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | How to find out which tasks are running in Windows | ||
Keywords | Running programs; Running tasks; Windows API |
Intercepting keystrokes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | How to intercept keystrokes, eg trap the Enter key and treat it like a Tab key press | ||
Keywords | Enter key; Enter key as Tab key; GetKeyState; Intercepting keystrokes; KeyPreview; Keypresses; OnKeyPress; Tab key; Trapping keystrokes; Windows API |
Opening and closing maximised MDI children | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Opening and closing maximised MDI children | ||
Keywords | MDI; Maximised MDI children; WindowState |
Converting times to floats | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | TTimeField and date arithmetic | ||
Keywords | Date arithmetic; Dates and times; TDateTime; TTimeField |
Bitmaps for brushes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Setting up custom bitmap brushes | ||
Keywords | Bitmaps; Brushes; Custom brushes; TBitmap |
Examining the type and value of array elements | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | How to examine the type and value of elements of an array passed to a function or procedure | ||
Keywords | TVarRec; Types of array elements; Value of array elements; Variant records |
Table locks | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Opening Paradox tables with table write locks | ||
Keywords | LockTable; Paradox tables; Printing bitmaps; StretchDIBits; StretchDraw; TLockType; Table locks; UnlockTable; Windows API |
Form name property | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Form's name property gives an empty string when read at run time in Delphi 1 | ||
Keywords | Form name property |
Lost pointers when an application GPFs | |||
---|---|---|---|
Authors | Goeran Forsstrom | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Using Try..Except to keep lost pointers when an application GPFs | ||
Keywords | Exception handling; GPF; Lost pointers |
I/O Error handling update | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Update to I/O error handling for Brian's file handling series | ||
Keywords | 32-bits; I/O error 21; I/O error 3; I/O error handling Delphi 2; Win32 |
Hints for modeless forms in DLLS | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Including hints on modeless forms in DLLs | ||
Keywords | Creating DLLs; DLLs; HandleMessage; Hints; Idle method; Modeless forms in DLLs; ShowModal |
Is Delphi Running? | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | How to tell if Delphi is running | ||
Keywords | Component building; Delphi active?; ExptIntf unit; Is Delphi running?; ToolServices |
A Delphi scratchpad | |||
---|---|---|---|
Authors | Michael Ax | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | A coding scratchpad in the Delphi IDE | ||
Keywords | Delphi IDE; Scratchpad |
TDirectoryOutline bug | |||
---|---|---|---|
Authors | Roberto De Marini | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | FileList of TFileListBox not updated correctly when used with a TDirectoryOutline | ||
Keywords | FileList not updated; TDirectoryOutline bug; TFileListBox |
Indexing TParam objects ina TQuery.Params property | |||
---|---|---|---|
Authors | Martin Humby | Type: Tip | |
Issue | 8 : April 1996 | View article | View source code |
Summary | Indexing TParam objects in a TQuery.Params property | ||
Keywords | Parameterised SQL; SQL; TParam; TQuery.Params |
File Handling 4: Streaming Objects | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Streams are a very powerful feature of object oriented programming and Brian Long shows how they can be easy too | ||
Keywords | Blob streams; CopyFrom; File handling; File streams; FileSeek; Files; LoadFromStream; Making objects streamable; Memory streams; Resource streams; SaveToStream; Seek; Streaming data; Streaming objects; Streams; TBlobStream; TFileStream; THandleStream; TMemoryStream; TResourceStream; TStream |
Performance Optimisation Part 3: 32 bits | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Bob Swart returns to the subject of making your applications go even faster with some handy hints on 32-bit specific issues for Delphi 2 | ||
Keywords | 32-bit assembly; 32-bits; Assembler; Delphi 2; Delphi IDE; Efficiency; Exceptions; Linker options; Optimization; Performance optimisation; Project Options; Typecasting; Typecasting variants; Variants |
Custom Coder Utilities | |||
---|---|---|---|
Authors | Stephen Posey | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Make life easier for yourself by generating code automatically: Stephen Posey shows how with examples for class method skeletons and message boxes | ||
Keywords | Code generation; Code skeletons; Coding utilities; Message Box Designer; MessageBox; Window title |
Delphi Internals: Disk Formatting Continued... | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Dave Jewell promises that next time he'll have this finally all wrapped up! | ||
Keywords | BPB; Bios Parameter Block; DOS calls; Delphi Internals column; Detecting disk type; Detecting drive type; Disk formatting; Disk sectors; Disk tracks; Floppy disk; Formatting disk tracks; Media sensing; Windows API |
Under Construction: Components For Workgroups 1 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Bob Swart offers useful advice and utilities for component management in a Delphi team development environment | ||
Keywords | Building components; COMPLIB.DPR; CompLib project; Experts; Registering components; Shared component library; Shared experts; Sharing COMPLIB.DCL; Under Construction column; Workgroup development |
Type-Safe Lists | |||
---|---|---|---|
Authors | Jim Cooper | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Jim Cooper gives us the low-down on the TList class and shows how to create type-safe derivatives of it, ending up with a handy expert to automate the task! | ||
Keywords | Building experts; Creating experts; Custom lists; DSGNINTF unit; Experts; List building expert; TComponentList; TList; TStringList; Type safety |
Audio-Enabled Components | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Paul Warren develops a WaveAudio player that allows you to embed sound right in your own components or applications: no more pesky .WAV files to ship (and your users to lose!) | ||
Keywords | Audio-enabled components; Building components; Building property editors; Linking sound into apps; Memory streams; Playing sounds; Property editors; Sound; Sound components; Sounds property editor; Streams; TMediaPlayer; TMemoryStream; WAV files |
Components Made Easier? | |||
---|---|---|---|
Authors | Mike Orriss | Type: Review | |
Issue | 9 : May 1996 | View article | No source code |
Summary | Mike Orriss reviews two packages designed to make component development simpler: Component Developers Kit and Component Create | ||
Keywords | Building components; Component Create; Component Developers Kit; Component builders; Eagle Software; Potomac Document Software; Reviews |
Review:HyperTerp | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 9 : May 1996 | View article | No source code |
Summary | Dave Jewell evaluates this Pascal-like script language component | ||
Keywords | HyperAct Inc; HyperTerp; Interpreter; Reviews; Script component; Script languages; Scripting |
Book Review: The Revolutionary Guide to Delphi 2 | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 9 : May 1996 | View article | No source code |
Summary | |||
Keywords | Book Reviews; Delphi 2 books; Revolutionary Guide Delphi 2 |
Charts From Tables | |||
---|---|---|---|
Authors | Rashid Ali | Type: Article | |
Issue | 9 : May 1996 | View article | No source code |
Summary | Rashid Ali describes how to graph data from database tables using the ChartFX VBX included with Delphi 1 | ||
Keywords | ChartFX; Charts from database tables; TQuery |
Multimedia API: sndPlaySound | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Multimedia API: sndPlaySound | ||
Keywords | MMSYSTEM unit; Multimedia; Multimedia API; Playing sound files; WAV files; Windows API; sndPlaySound |
Ensuring a DOS application has terminated | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Ensuring a DOS application has terminated | ||
Keywords | Application terminated; Multi-user; Network; Semaphore files; Sharing files; WinExec |
OnExit and the lost Caret (text cursor) | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | When switching back to an edit control from a dialog box the caret (text cursor) is lost | ||
Keywords | Focus; Lost caret; Lost text cursor; OnExit; Validation |
Error-Free Custom open file dialogs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Creating custom file open dialogs using TDirectoryList, TFileListBox and TDriveComboBox | ||
Keywords | Custom file open dialog; EInOutError; File open errors; SetErrorMode; TDirectoryList; TDriveComboBox; TFileListBox; Trapping Windows file errors |
Multiple help files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Specifying an application's Help file name | ||
Keywords | Application.HelpFile; FindClose; Help files |
Oracle SQL*NET 2 and SQL Links | |||
---|---|---|---|
Authors | Steve Axtell , Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Oracle SQL*NET 2 and SQL Links | ||
Keywords | Delphi 1; Oracle SQL*NET 2; SQL Links |
Delphi 2 applications won't minimise correctly | |||
---|---|---|---|
Authors | Brian Long , Roy Nelson | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Delphi 2 applications won't minimise correctly if WindowState is set to wsMinimized | ||
Keywords | Delphi 2; Window Minimized; WindowState; wsMinimized |
Synchronised Listboxes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Synchronising two listboxes | ||
Keywords | Listbox scrolling; Message handling; Synchronised listboxes; TListBox; WM_VScroll; Windows API; Windows messages |
Using strings as Case selectors | |||
---|---|---|---|
Authors | Stephen Posey | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Using strings as Case selectors | ||
Keywords | Case; GetEnumValue; Strings as Case selectors; Windows API |
Changing printer parameters | |||
---|---|---|---|
Authors | William Thorp | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Changing printer parameters: paper orientation, number of copies, paper size | ||
Keywords | DevMode; GetPrinter; GlobalLock; Number of copies printed; Paper size; Paper source; Printer parameters; PrinterIndex; Printing; TDevMode; Windows API |
Moving components to Delphi 2 | |||
---|---|---|---|
Authors | Paul Warren | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Moving components to Delphi 2: convert palette bitmap to 32 bit format! | ||
Keywords | 32-bits; Building components; Component palette bitmaps; Converting resources 32-bit; DCR file; Delphi 2; Unsupported 16 bit resource |
Packing Paradox tables | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | How to pack Paradox tables | ||
Keywords | BDE; Database; DbiDoRestructure; Packing Paradox tables; Paradox tables; TDatabase |
Replacing controls | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | An easy way to replace one type of control with another | ||
Keywords | Replacing controls |
MaxLength of DBEdit doesn't work | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | MaxLength of DBEdit doesn't work | ||
Keywords | DBEdit; MaxLength DBEdit |
Lost cursor after displaying dialogs | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 9 : May 1996 | View article | View source code |
Summary | Lost cursor after displaying dialogs | ||
Keywords | Lost cursor; OnExit; ShowMessage |
Under Construction: Version Control Systems | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Bob Swart describes the development of his ViCiouS version control system, showing how you too can develop your very own VCS! | ||
Keywords | Building components; DELPHI.INI; Delphi VCS interface; EXPTINTF unit; Exception handling; Exceptions; GetIDString; Installing VCS; TIVCSClient; TOOLINTF unit; ToolServices; Under Construction column; VCSINTF unit; Version control systems; ViCiouS; Workgroup development |
Printing In Delphi: Introducing TPrinter | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Xavier Pacheco starts a new series on adding printing capabilities to your Delphi 2 applications with a run-down of the basics | ||
Keywords | AssignPrn; Bitmaps; Fonts; Page orientation; Page size; Paper orientation; Paper size; Printer capabilities; Printer resolution; Printers unit; Printing; Printing Bitmaps; Printing rich text; Printing text; RTF; Rich text format; TPrinter; TPrinter Canvas |
Surviving Client/Server: SQL Performance Tuning | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 10 : June 1996 | View article | No source code |
Summary | Steve Troxell shows how to make your client/server apps run at optimum speed | ||
Keywords | Client/Server; Clustered indexes; Cost-Based Optimizers; Indexes; Indices; InterBase; MS SQL Server; Optimisation; Query optimizers; SQL; SQL execution plans; SQL performance tuning; SQL queries; SQL tuning; SQL: NATURAL; SQL: SET STATISTICS; SQL: UPDATE STATISTICS; Surviving Client/Server |
Book Review: Borland's Official No-Nonsense Guide To Delphi 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 10 : June 1996 | View article | No source code |
Summary | |||
Keywords | Book Reviews; Delphi 2 books; Michelle Manning; No Nonsense Guide Delphi 2 |
File Handling 5: Streaming Components | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Amongst other things, Brian Long shows how to enable your programs to have an autosaving desktop | ||
Keywords | 32 bits; DFM files; Delphi 2; File Handling; File copy using streams; File copying; Files; Form files; LoadFromStream; Persistent objects; RTTI; ReadComponent; Run time resource streams; Run time type information; SaveToStream; Saving application status; Saving the desktop; Streaming components; Streams; TFileStream; TPersistent; TWriter; WriteComponentResFile |
Delphi Internals: Disk Formatting Completed | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | The final instalment in Dave Jewell's marathon and there's an example program on the disk to prove it! | ||
Keywords | Boot sector; Callbacks; DOS calls; Delphi Internals column; Disk directory; Disk formatting; FAT; File Allocation Table; Floppy disks; Strings unit; WinDOS unit; Windows 95; Windows API; Windows NT |
Component Lists: TCollection And TCollectionItem | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Using a pie chart creator as an example, Xavier Pacheco shows how to build component lists using these components | ||
Keywords | Building components; Collections; Collections of components; Component lists; Property Editors; TCollection; TCollectionItem |
Implementation Of A Single Instance Class | |||
---|---|---|---|
Authors | John Chaytor | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | John Chaytor shows how to ensure that no more than one instance of a class can be created in your applications | ||
Keywords | Building components; Class constructors; Class method constructor; Class methods; Creating a class only one; Deriving classes; Event handlers; Events; Single instance class |
Review: EMS Shareware Delphi Library on CD | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 10 : June 1996 | View article | No source code |
Summary | |||
Keywords | Delphi Shareware; EMS Delphi CD; EMS Professional Shareware; EMS Shareware Library; Reviews |
Chasing Objectivity With TDBNavigator | |||
---|---|---|---|
Authors | Robert Palomo | Type: Article | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Sometimes object-oriented just isn't the way to go... Robert Palomo describes how he implemented a custom navigator control with BDE error checking | ||
Keywords | BDE; BDE error codes; DBCTRLS unit; Database; Database error handling; EDBEngineError; Extended TDBNavigator; Extending components; Inheritance; Object Orientation; TDBNavigator; Table navigator |
TOutline bug | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | TOutline bug: spurious list out of bounds exception | ||
Keywords | Delphi 1 bugs; Delphi 2 bugs; List out of bounds; TOutline bug |
MinValue and MaxValue Bugs in MATH unit | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | MinValue and MaxValue Bugs in MATH unit | ||
Keywords | MATH unit bugs; MaxValue bug; MinValue bug |
Autosizing TDBGrid | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | How to make a DBGrid to automatically size itself so that no white space is left at the right | ||
Keywords | Automatically size DBGrid; BDE; DBGRid autosizing; Database; TDBGrid autosizing |
Prevent user adding new record in TDBGrid | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Prevent user adding new record in TDBGrid | ||
Keywords | BDE; DBGRid; Database; Prevent add new record; TDBGrid |
Reading a form's properties | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | How to read a form's properties from a non-Delphi program | ||
Keywords | DFM files; Form files; Form properties |
Optimising TPaintBox painting | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Optimising TPaintBox painting by repainting only the changed portion of the graphic | ||
Keywords | Message handling; Optimising TPaintBox Paint; TGraphicControl; TImage; TPaintBox; TSpeedButton; TWinControl; Windows API; Windows messages; wm_Paint |
Restricting access to properties | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Restricting access to properties | ||
Keywords | Building components; Properties; Read only properties; Restricting property access; published |
General help page | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | General help page | ||
Keywords | Adding Help; Context sensitive help; Help; Windows Help files |
Hiding TTabbedNotebook pages | |||
---|---|---|---|
Authors | Brian Long , Roy Nelson | Type: Clinic | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Hiding TTabbedNotebook pages | ||
Keywords | Disabling notebook pages; Hiding notebook pages; Showing notebook pages; TPageControl; TTabControl; TTabPage; TTabbedNotebook |
Packing dBase tables | |||
---|---|---|---|
Authors | Richard Smith | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Packing dBase tables | ||
Keywords | BDE; DBF files; Database; DbiDoRestructure; DbiPackTable; Packing dBase tables |
Changing TEdit text in the OnChange event handler | |||
---|---|---|---|
Authors | Bruno Sonnino | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Changing TEdit text in the OnChange event handler | ||
Keywords | OnChange event handler; TEdit text |
Reading text files as binary | |||
---|---|---|---|
Authors | Mike Rogers | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Reading text files as binary | ||
Keywords | Files; Reading text files as binary; Text files |
Naming forms and units to prevent name clashes | |||
---|---|---|---|
Authors | Tung Wai Yip | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Naming forms and units to prevent name clashes | ||
Keywords | Form and unit name clashes; Naming forms and units |
Unique values only in TDBLookUpCombo | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Unique values only in TDBLookUpCombo | ||
Keywords | QBE queries; Query by example; TDBLookUpCombo; TDBLookUpCombo unique values; Using QBE as a TTable source |
Calling forms using a string variable whose value is form type | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Calling forms using a string variable whose value is form type | ||
Keywords | Calling forms with string; Forms |
Changing a form's mode | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Changing a form's mode | ||
Keywords | Changing form mode; Forms; OnStateChange; TDataSource |
Does a record have any empty fields? | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Does a record have any empty fields? | ||
Keywords | BDE; Database; Empty fields |
Duplicating data from previous record | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 10 : June 1996 | View article | View source code |
Summary | Duplicating data from previous record | ||
Keywords | Data entry; DataSource; Database; Duplicating previous record; OnDataChange; Shadow tables |
Beating The System: Thunking For Profit And Pleasure | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to call 16-bit code in 32-bit Delphi 2 applications and vice-versa | ||
Keywords | 32-bit; Assembler; Beating The System column; COMMCTL32.DLL; CallProc32W; CallProcEx32; Calling 16-bit code in 32-bi; Calling DLLs; DLLs; Flat Thunk; FreeLibrary; FreeLibraryEx32; Generic Thunk; GetFocus; GetProcAddress; GetProcAddress32W; GetVDMPointer32W; GlobalFix; GlobalLock; GlobalMemoryStatus; InitCommonControls; KERNAL32.DLL; LoadLibrary; LoadLibraryEx32; QT_Thunk; SendMessage; TFarProc; Thunking; Thunks; Universal Thunk; Using DLLs; Win32s; Win95 Progress Bar in 16bit; Windows 95; Windows API; Windows NT |
File Handling 6: Text File Device Drivers | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Final installment of Brian's series on file handling, which describes how to use text file device drivers and also presents a handy debugging utility | ||
Keywords | AssignFile; AssignPrn; CloseFunc; Console mode; Debugging; Debugging utility; File error handling; File handling; Files; FlushFunc; I/O errors; InOutFunc; OpenFunc; SysUtils unit; TTextRec; Text file device drivers; TextFile; WinCRT |
Surviving Client/Server: InterBase or SQL Server? | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 11 : July 1996 | View article | No source code |
Summary | Borland InterBase and Microsoft SQL Server database servers compared | ||
Keywords | ANSI SQL92 Conformance; Database servers; Domains; InterBase; InterBase versus SQL Server; Record locking; SQL; SQL Server; Stored procedures; Surviving Client/Server; TTable versus TQuery; Table locking; Temporary tables; Transaction processing; Triggers |
Designing An Article Index Database System | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Bob describes the design and implementation of The Delphi Magazine's Article Index Database. | ||
Keywords | Article index database; Avoiding use of Alias; Calculated fields; Data design; Database; Database form expert; Designing database system; Joining tables; Referential integrity; SQL; SQL queries; SQL: OR bug?; SQL: ORDER BY; TQuery |
Review: BoundsChecker 4.0 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 11 : July 1996 | View article | No source code |
Summary | |||
Keywords | BoundsChecker 4.0; Debugging; Delphi 2 debugging; Detecting memory leaks; Memory access checks; NuMega; Pointer checking |
Under Construction: What's New? | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Update on sharing a component library within a workgroup with new ideas and utilities | ||
Keywords | Building components; Sharing COMPLIB.DCL; Sharing component library; Under Construction column; Workgroup development |
Review: CADET | |||
---|---|---|---|
Authors | Mike Orriss | Type: Review | |
Issue | 11 : July 1996 | View article | No source code |
Summary | |||
Keywords | CADET; CASE tools; Creating tables; Data design; ObjectWare; Reverse engineering; Reviews |
Printing In Delphi: Printing To Scale | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Printing in Delphi using sensible units like centimetres and inches | ||
Keywords | 32-bits; Delphi 2; GetDeviceCaps; Mapping modes; Printing; Printing to scale; SetMapMode; TCanvas; WindowsAPI |
Book Review: Delphi Programming Problem Solver | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 11 : July 1996 | View article | No source code |
Summary | |||
Keywords | Book Reviews; Neil Rubenkink |
Hooking Heapcheck | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Hallvard takes a little-documented and seemingly useless callback hidden away in Delphi 1 and turns it into a really useful heap debugging tool. | ||
Keywords | Assembler; Callbacks; Debugging; Heap memory; HeapCheck; HeapLimit; Memory allocation; Memory de-allocation; Memory leaks; Pointer checking; Windows API |
Paradox tables on a CD | |||
---|---|---|---|
Authors | Brian Long , Roy Nelson | Type: Clinic | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to put Paradox tables onto a (read-only) CD-ROM | ||
Keywords | BDE; CD-ROM; Database; DbiGetSysConfig; Directory lock; Paradox; Paradox lock files; TSession |
Multi Record Objects: Using TDBCtrlGrid | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to place TDBImage and TDBMemo controls into a Delphi 2 TDBCtrlGrid | ||
Keywords | Database; Delphi 2; Multi record objects; TDBCtrlGrid; TDBImage; TDBMemo |
Copying Tables | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to copy tables using TBatchMove and create the required index files too | ||
Keywords | BDE; BatchMove; Copying index files; Copying tables; Creating index files; Database; TBatchMove |
Why is Delphi 2 so slow? | |||
---|---|---|---|
Authors | Danny Thorpe , Brian Long | Type: Clinic | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Why is Delphi 2 so slow? | ||
Keywords | 32-bit compiler; 32-bits; BDE; Delphi 2 is slow?; New DCU format; New unit file format; Windows 95; Windows NT |
DataList utility | |||
---|---|---|---|
Authors | Glenn Shukster | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Example project inlcuded with Delphi 1 which shows tables, field names etc. | ||
Keywords | BDE; DataList; Database; Index files |
Determine if WAV audio is supported on a system | |||
---|---|---|---|
Authors | Paul Warren | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Determine if WAV audio is supported on a system | ||
Keywords | Audio installed?; MMSYSTEM unit; Sound; WAV audio; waveOutGetNumDevs |
Project history list | |||
---|---|---|---|
Authors | Rohit Gupta | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Add more projects to the Delphi IDE project history list | ||
Keywords | DELPHI.INI; Delphi IDE; Project history list |
Auto-increment off track | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to fix auto-increment fields which have got off track | ||
Keywords | Auto-increment fields; BDE; Database; Key violation error; Paradox |
Setting the cursor | |||
---|---|---|---|
Authors | Ian Johnson | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to set the mouse cursor throughout an application except for certain controls in an MDI application | ||
Keywords | Cursor; MDI applications; Mouse |
TDBGrid cell display | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | How to display something other than the field contents in a TDBGrid cell | ||
Keywords | Database; GetText; SetText; TDBGrid cell contents |
Adding indexes | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Fixing Invalid Index/Tag Name errors when adding new indexes to database tables | ||
Keywords | AddIndex; Adding indexes; BDE; Database; Indexes; Invalid Index/Tag name; ixCaseInsensitive; ixCaseSensitive |
Using masks with TDBEdit | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Using masks with TDBEdit to capitalise the first letter of each word typed | ||
Keywords | Capitalise; Masks; TDBEdit |
Ensuring no duplicates appear in a combobox | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Ensuring no duplicates appear in a combobox | ||
Keywords | ComboBox; IndexOf; No duplicates in ComboBox |
Getting Form Coordinates | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Getting Form Coordinates | ||
Keywords | Form coordinates; GetPlacement; Windows API |
Delphi 2 DeleteFile type mismatch error? | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 11 : July 1996 | View article | View source code |
Summary | Delphi 2 DeleteFile type mismatch error? | ||
Keywords | DeleteFile in SysUtils; Deleting files; Delphi 2; FindClose in SysUtils; SysUtils unit; Type mismatch error; Windows API |
Beating the System: The Private life of a Winhelp File (Part 1) | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Dave loves delving inside the undocumented and this month he takes the lid off Windows Help files, showing how , by understanding the format, you can add extra functionality to your apps. | ||
Keywords | MVB format files; WHIFS; WinHelp file system; Windows Help files |
Windows 95 Tray Icons | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Marco Cant∙ shows how to build your own tray icon applications using System Resources examples. | ||
Keywords | Free memory; GlobalMemoryStatus; Hiding a taskbar icon; Hiding main window; SetForegroundWindow; Shell_NotifyIcon; Tray icon; Win32; Windows 95 |
The Late Session | |||
---|---|---|---|
Authors | John O'Connell | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Inside the Borland Database Engine with John O'Connell, who has the low-down on sessions, both single and multiple, and how you can create your own in Delphi 1 and 2 applications. | ||
Keywords | BDE; Direct BDE calls; IDAPI; Multiple sessions; PARADOX.LCK; PDOXUSRS.LCK; Record locks; Session property; TDatabase.Close; TDatabase.Open; TSession; TUpdateSQL; Table locks; dbiCloseSession; dbiOpenSession; dbiSetCurrSession; dbiStartSession |
Book Review: Database Developer's Guide with Delphi 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 12 : August 1996 | View article | No source code |
Summary | |||
Keywords | Book reviews; Ken Henderson |
Printing in Delphi: Printing an Invoice Report | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Xavier Demonstrates how you can have professional-looking fully formatted reports without using any add-on reporting tools. | ||
Keywords | Font sizes for printing; GetDeviceCaps; GetLineHeight; GetTextMetrics; Pixels per inch; PixelsPerInch error; Printer resolution; Printing; Printing reports; Printing: alignment; Printing: device independent; Printing: page margins; TEXTMETRIC; Win32 |
Under Construction: A Hex Viewer and Editor | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Bob returns to component writing in this month's column, with a viewer and editor for binary files of up to 2Gb! | ||
Keywords | Binary files; Component building; Delphi 2 FileMode bug; Displaying Hexadecimal; Editing huge files; Editor; File sharing; File viewer; FileMode; Grids; Hex editor; Hex viewer; Paging algorithm; Property editors |
Calling 16-Bit Code from 32-bit in Windows 95 | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Brian Long demonstrates how QT_Thunk can get your 16-bit code working in Delphi 2 applications (the techniques described complement Dave Jewell's column last month, which dealt with generic thunks) | ||
Keywords | C calling convention; Calling 16-bit from 32-bit; Flat thunk; Free memory; Free resources; FreeLibrary16; Generic thunk; GetFreeSystemResources; GetProcAddress; GetProcAddress16; GetThreadSelectorEntry; List 16-bit modules; List 16-bit tasks; LoadLibrary16; Locking memory; Memory locks; QT_Thunk; Quick Thunk; Stack frames; System resources; SystemHeapInfo; Thunk compiler; Thunking; Thunktion; ToolHelp; Universal thunk; WOWGetVDMPointer; Win32; Win32s; Windows 95; Windows NT; cdecl |
Using a text file device driver as a string parser | |||
---|---|---|---|
Authors | Jon Jacobs | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | String parsing can be a real pain to implement but Jon shows how to make it really easy using a TFDD. | ||
Keywords | File flushing; File mode; File sharing; Parsing strings; String parsing; SysUtils; TTextRec; Text file device drivers |
Surviving Client/Server: Cached Updates | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Steve begins a tour of Delphi 2's new database-related features with this new performance enhancement option. | ||
Keywords | ApplyUpdates; Cached updates; CachedUpdates property; Client/Server; Modifying Read Only results; Result sets; Surviving Client/Server; TDataSet; TDatabase; TUpdateSQL; UpdateRecordTypes; UpdatesPending property |
What is the image base option? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 12 : August 1996 | View article | View source code |
Summary | What is the image base option? | ||
Keywords | DLL memory location; ImageBase; Linker options; Writing DLLs |
Floating Point Inaccuracy | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Floating Point Inaccuracy | ||
Keywords | FLOAT fields; Floating point inaccuracy; InterBase; Precision property; Rounding errors |
InterBase BLOb SubTypes and segments | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 12 : August 1996 | View article | View source code |
Summary | InterBase BLOb SubTypes and segments | ||
Keywords | BLOb SubTypes; BLOb segments; InterBase |
Raw Printer Access | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Raw Printer Access | ||
Keywords | Escape; Printer driver PassThrough; Printing; Raw printer access; SpoolFile; Win32; Writing direct to printer |
Virtual and Override Clarification | |||
---|---|---|---|
Authors | Brian Long , Allen Bauer , Danny Thorpe | Type: Clinic | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Virtual and Override Clarification | ||
Keywords | Dynamic; Dynamic method table DMT; Early binding; Late binding; Message handling; Override; Polymorphism; Virtual; Virtual method table VMT |
Identifying 32-bit Windows Platforms | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Identifying 32-bit Windows Platforms | ||
Keywords | Identifying Windows 95; Identifying Windows NT; Identifying platform; Win32 |
ShowModal | |||
---|---|---|---|
Authors | Richard Smith | Type: Tip | |
Issue | 12 : August 1996 | View article | View source code |
Summary | ShowModal | ||
Keywords | Creating modal forms; ShowModal |
Network Directory Exists | |||
---|---|---|---|
Authors | Jaroslav Blaha | Type: Tip | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Network Directory Exists | ||
Keywords | Directory exists; DirectoryExists; Network directory exists; Networking |
Execute and Wait | |||
---|---|---|---|
Authors | Jaroslav Blaha | Type: Tip | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Execute and Wait | ||
Keywords | Execute DOS program; Execute and wait; Semaphore files; WinExec |
Database Flushing | |||
---|---|---|---|
Authors | Mike Pijl | Type: Tip | |
Issue | 12 : August 1996 | View article | View source code |
Summary | Database Flushing | ||
Keywords | BLOB has been modified error; Flush database; OnAfterPost for TTable; dbiSaveChanges |
Default Draw Data Cell | |||
---|---|---|---|
Authors | Mike Pijl | Type: Tip | |
Issue | 12 : August 1996 | View article | View source code |
Summary | DefaultDrawDataCell | ||
Keywords | DBGrid cell custom format; DefaultDrawDataCell; Highlight DBGrid cells |
Digging into IDAPI Part 1 | |||
---|---|---|---|
Authors | John O'Connell | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | John O'Connel provides more insights into making direct calls to the BDE to enhance your database applications' capabilities and performance | ||
Keywords | BDE; BDE date format; BDE system status; BDE.INT; CursoPosChanged; DBIERRS.INT; DBIPROCS.INT; DBTYPES.INT; Database handle; Database property; Direct BDE calls; File sharing; IDAPI; IDAPI objects; IDAPI record structure; Locking; Multi user; Private directory; PrivateDir property; Record locks; Record number; Record number component; Sequence number Paradox; TSession; TStoredProc; TTable MoveBy; TTable Refresh; Table cursor position; Temporary TDatabase; UpdateCursorPos; dbiDateDecode; dbiExit; dbiGetCursorProps; dbiGetNetUserName; dbiGetNextRecord; dbiGetRecord; dbiGetRelativeRecord; dbiGetSeqNo; dbiGetSysInfo; dbiGetSysVersion; dbiGeySysConfig; dbiInit; dbiLockType; dbiOpenDatabase; dbiSetDirectory; dbiSetPrivateDirectory; dbiSetToRecordNo; dbiSetToSeqNo |
Cascading Exceptions | |||
---|---|---|---|
Authors | Andrew McLellan | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Andrew McLellan shows how to use Delphi's exception handling to build error handling systems which satisfy the needs of both end users and technical support departments. | ||
Keywords | Cascading exceptions; Creating new error class; Error handling; Error messages; Exception handling; Exceptions; OnException |
Surviving Client Server: Delphi 2.0 Potpourri | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Continuing his look at Delphi 2.o's new database features, this month Steve Troxell rounds off cached updates and covers filters and database dictionaries | ||
Keywords | Cached updates; Client/server; Data dictionary; Dataset filtering; Delphi 2 client/server; Delphi 2 data dictionary; FilterOptions property; Filtered property; Filtering records; Find and Find Next; FindFirst; FindLast; Incremental searches; ModifySQL property; OnFilterRecord event; OnUpdateRecord event; SQL; Searching with filters; Surviving Client/Server; TDataSet; TUpdateSQL; UpdateKind |
Data Validation Levels | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Bob Swart shows how to build data validation into your applications at input, field, record/table and dialog or application levels. | ||
Keywords | Data validation; Dialog/form validation; Edit masks; EditMask; Field validation; OnValidate; Record validation; Table validation |
An "Expert" Expert | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Paul Warren thinks experts are wonderful, so he built an expert to create his own experts! | ||
Keywords | Building experts; CreateModule; ExpIntf; Expert to build experts; Experts; Open Tools API; Proxies; Proxy; TIExpert; ToolIntf |
Beating the System: The Private Life of A WinHelp File (Part 2) | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Dave Jewell continues trawling the depths of Windows Help files, this month explaining how thier data compression system works | ||
Keywords | Beating The System; Compression; Help compression; Help file; Length/distance encoding; Sliding window compression; WHIFS; Windows Help file format |
Under Construction: Delphi 2.0 AddIn Experts | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Delphi 2.0 has a new, fourth kind of expert and Bob Swart shows how to build your own, and there's even a bug-tracking expert on the free disk! | ||
Keywords | AddIn Experts; BERT; Building experts; DLL experts; Delphi 2.0; EXPTINTF; Error report database; Error report expert; Error tracking; Experts; TIExpert; TOOLINTF; Under Construction |
Review: Infopower 2.0 | |||
---|---|---|---|
Authors | Mike Orriss | Type: Review | |
Issue | 13 : September 1996 | View article | No source code |
Summary | Mike Orriss puts the new version of this popular database component toolbox through its paces | ||
Keywords | InfoPower 2.0; Reviews |
Book Review: Rapid Development by Steve McConnell | |||
---|---|---|---|
Authors | Richard Stevens | Type: Review | |
Issue | 13 : September 1996 | View article | No source code |
Summary | Written by Steve McConnell reviewed by Richard Stevens | ||
Keywords | Book reviews; Steve McConnell |
File Handle Leak | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | File Handle Leak | ||
Keywords | File handles; FileCreate; Rewrite |
Validation en Masse | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Validation En Masse | ||
Keywords | OnValidate; TDBedit; Validating multiple controls; Validation |
Enum As String | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Enum As String | ||
Keywords | Enumerated type as string; RTTI; Run time type information; TypInfo |
CPU Level Debugging | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | CPU Level Debugging | ||
Keywords | Assembler generation; CPU level debugging; Debugging; Delphi 2.0; Registry; Windows 95 |
Stop Splashing About | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Modifying the Splash Screen which shows during the load up process | ||
Keywords | /NS on command line; Delphi 2.0; No Delphi 2 splash screen |
Form-Wide OnMouseMove | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Form-Wide OnMouseMove | ||
Keywords | Mouse events all controls; OnMouseMove |
Default OLE Automation Property | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Default OLE Automation Property | ||
Keywords | OLE Automation; OLE Server default property; OLE dispatch ID |
Thunk Update | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Thunk Update | ||
Keywords | Call 16-bit code in 32-bit; QT_Thunk; Thunking; Thunking with no assembler; Windows 95 |
Automatic Initialisation And Finalisation | |||
---|---|---|---|
Authors | Jim Cooper | Type: Tip | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Automatic Initialisation And Finalisation | ||
Keywords | AddExitProc; Exit procedures; Finalization; Initialization; SysUtils; Unit finalisation; Unit initialisation |
Easy Word Wrapping | |||
---|---|---|---|
Authors | Jim Cooper | Type: Tip | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Easy Word Wrapping | ||
Keywords | DT_WORDBREAK; DrawText; Grids; Word wrapping |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 13 : September 1996 | View article | No source code |
Summary | A humorous look at Delphi training... | ||
Keywords | One Last Compile |
Language Extensions: Variants | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 13 : September 1996 | View article | View source code |
Summary | How to use the new Variant type in Delphi 2.0 | ||
Keywords | Delphi 2; Dynamic data types; Garbage collection; Invalid variant operation; OLE Automation; TVarData; Typecasting variants; Variant arrays; Variant type; Variants; Variants and databases; Variants in expressions |
Book review: Building Internet Applications With Delphi 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 13 : September 1996 | View article | No source code |
Summary | |||
Keywords | Book review; Davis Chapman; Internet |
Inheritance update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 13 : September 1996 | View article | View source code |
Summary | Update on Issue 12 discussion of virtual, override and dynamic | ||
Keywords | Dynamic; Inheritance; Inherited; Overrride; Virtual |
Surviving Client/Server: Data Processing With Subqueries | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 14 : October 1996 | View article | No source code |
Summary | Steve Troxell shows how to exploit the flexibility of SQL's SELECT statement to build complex and powerful queries. | ||
Keywords | Client/server; Correlated subqueries; Data processing; Duplicate values in rankings; Ranking data; Ranking multiple sequences; SQL; SQL AVERAGE; SQL SELECT; SQL SELECT DISTINCT; SQL nested SELECT; Subqueries; Surviving Client/Server |
Customising TDrawGrid For Text Grids | |||
---|---|---|---|
Authors | Steve Tung | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Steve Tung demonstrates how you can use TDrawGrid to display text and gain useful flexibility along the way. | ||
Keywords | Cutomising grid cells; Drawing grid cell text; ExtTextOut; Grid cell text alignment; Merging grid cells; Mouse handling in grids; Multiple select grid cells; Sorting text grids; Splitting grid cells; TDrawGrid; TStringGrid; Text grids; Text in TDrawGrid |
Using Form Components With Delphi 1 | |||
---|---|---|---|
Authors | Rohit Gupta | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Save time by re-using your forms in Delphi 1 with Rohit Gupta's simple to implement tricks. | ||
Keywords | Default form; Form components in Delphi 1; Re-using forms |
Digging into IDAPI part 2 | |||
---|---|---|---|
Authors | John O'Connell | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | John O'Connell gives us a roundup of cursor properties, including record bookmarks, table rights, un-deleting records, table copying and renaming, packing and re-indexing, completing the picture with an enhanced version of TTable with loads of new functionality. | ||
Keywords | BDE; Bookmarks; Copying tables; Deleted records; Deleting all records; Direct BDE calls; Emptying table; Enhanced TTable; File sharing; Flushing database changes; GetBookmark; GoToBookmark; IDAPI; IDAPI cursor properties list; Indexes; Maintained index; Multi user; Non-maintained index; Open tables count; Packing tables; Paradox field privileges; Paradox table passwords; Paradox table privileges; Rebuilding indexes; Renaming tables; Shared or exclusive table; TBookmark; TIndexDef; TTable enhancements; Table cursor properties; Table indexes; Table passwords; Table rights; Transaction handling; Un-deleting records; bBookmarkStable; bDeletedOn; dbiCompareBookmarks; dbiDoRestructure; dbiEmptyTable; dbiGetBookmark; dbiGetCursorProps; dbiGetIndexDesc; dbiGetTableOpenCount; dbiGetTranInfo; dbiIsTableShared; dbiOPENSHARED; dbiREADONLY; dbiRegenIndex; dbiRegenIndexes; dbiSaveChanges; dbiSetProp; dbiUseIdleTime; dbipackTable; eOpenMode |
File Search and Delete Tree | |||
---|---|---|---|
Authors | David Selwood | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Devid Selwood present some useful routines to delete a whole directory tree and search a directory tree for those elusive files your users have hidden! | ||
Keywords | Deleting directories; Deleting directory tree; Deleting files; FindFirst; FindNext; Finding files; Recursion; Recursive programming; Searching for files |
Under Construction: Testing And Debugging | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 14 : October 1996 | View article | No source code |
Summary | Bob Swart has some useful tips, techniques and guidelines for keeping your components bug-free and finding those few that slip through the net. | ||
Keywords | $APPTYPE CONSOLE; Component building; Component debugging; Component testing; ComponentState; Console applications; Debugging; Delphi 2 and NT 4.0 beta; Design; Design, run time behaviour; Detecting design time; Detecting run time; Error 202 in COMPLIB; Log files; Naming conventions; Object oriented design; Recursion; Stack overflow; Testing; Turbo Debugger; Under Construction; WinCRT; Windows NT 4.0; cdDesigning; reAct component debugger |
Printing in Delphi: Getting Printer Information | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Xavier Pacheco is back to unravel the secrets of obtaining details of printer capabilities. | ||
Keywords | Banding; DC_DRIVER; DeviceCapabilities; DeviceCapabilitiesA; DeviceCapabilitiesEx; DeviceCapabilitiesW; GDI32; GetDeviceCaps; GetPrinter; Getting printer information; Printer bins; Printer drivers; Printer fonts; Printer information; Printer paper size; Printer resolution; Printing; TDevMode; TPrinter; TrueType font support; WINSPOOL.DRV; Win32 |
Beating the System: The Private Life Of a WinHelp File (Part 3) | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Dave Jewell wraps up his exploration of Help file innards with a discussion of the phrase data; there's a utility on the disk to completely decode Help files too! | ||
Keywords | Beating the System; Decompress help files; Disk formatting; Format disk; Help files; Help phrase file; SHFormatDrive; WHIFS; Win32; Windows 95; Windows Help File format |
Turbocharging Database Applications with TLists | |||
---|---|---|---|
Authors | Jonathon Morgan | Type: Article | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Jonathon Morgan shows how you can make your database applications zip along by transferring frequently referenced tables to TList structures | ||
Keywords | Database; Optimisation; Performance enhancement; TList; TList in database apps |
SysTools | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 14 : October 1996 | View article | No source code |
Summary | |||
Keywords | SysTools; System functions; TurboPower Software |
And Do Dilly Dally On The Way | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 14 : October 1996 | View article | View source code |
Summary | And Do Dilly Dally On The Way | ||
Keywords | Delay; Sleep; Win32 |
Changing Locations | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Changing Locations | ||
Keywords | Application window position; Initial window position; Position property; Positioning windows; Window location |
Tacky Termination | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Tacky Termination | ||
Keywords | Halt; Screen flicker; ShowMainForm; Terminate |
Changing the Default Exception Handler | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Changing the Default Exception Handler | ||
Keywords | Change exception handler; Default exception handler; Exception handling; Exceptions; OnException; TExceptionEvent |
Can't Re-Complie The VCL | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Can't Re-Compile The VCL | ||
Keywords | Delphi 2; Recompiling VCL; Unit caching; VCL |
OLE Method Lost | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 14 : October 1996 | View article | View source code |
Summary | OLE Method Lost | ||
Keywords | DISP_E_UNKNOWNNAME; OLE Automation; OLE Errors Windows 95; OnTimer; Windows95 |
Showing Modal Forms | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Showing Modal Forms | ||
Keywords | Creating modal forms; Modal forms |
TDBNavigator Button Click | |||
---|---|---|---|
Authors | Maarten van den Broek | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | TDBNavigator Button Click | ||
Keywords | Database; Descending from TDBNavigator; TDBNavigator; TDBNavigator button click |
Laptop Battery Status | |||
---|---|---|---|
Authors | Mike Pijl | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Laptop Battery Status | ||
Keywords | Laptop battery status; Power management |
TStringList Versus TStringCollection | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | TStringList Versus TStringCollection | ||
Keywords | Grow; ReadFromFile too slow; SetCapacity; TStringCollection; TStringList |
Pointer Notation | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Pointer Notation | ||
Keywords | Pointer notation; ^ operator |
Delphi 2 Optimisation | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Delphi 2 Optimisation | ||
Keywords | Case constructs; Compiler optimisation; Delphi 2; Optimisation |
Your Delphi 2 Executables are 500kb larger than you think! | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Your Delphi 2 Executables are 500kb larger than you think! | ||
Keywords | Large Delphi 2 EXE files; Memory use; OLE Automation; OLEAUT32.DLL |
Are you there? | |||
---|---|---|---|
Authors | Peter Schrade | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | Are you there? | ||
Keywords | File exists; FileExists problem; FindFirst |
TPageControl Accelerators | |||
---|---|---|---|
Authors | Dean Thompson | Type: Tip | |
Issue | 14 : October 1996 | View article | View source code |
Summary | TPageControl Accelerators | ||
Keywords | Accelerator keys; Delphi 2; TPageControl; TTabSheet |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 14 : October 1996 | View article | No source code |
Summary | Delphi books: the lighter side... | ||
Keywords | One Last Compile |
Subclassing Windows from EXE files in 16-bit appliccations | |||
---|---|---|---|
Authors | John Chaytor | Type: Article | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Normally you can only subclass windows from DLLs, John Chaytor shows how to do it from EXE files too. | ||
Keywords | Callbacks; Exported functions; FreeProcInstance; MakeProcInstance; Smart callbacks $K directive; Subclassing |
Digging Into IDAPI | |||
---|---|---|---|
Authors | John O'Connell | Type: Article | |
Issue | 15 : November 1996 | View article | View source code |
Summary | John O'Connell concludes his in-depth investigation of direct BDE calls by discussing table and record locks, in-memory tables and temporary tables | ||
Keywords | BDE; Character set; DBITYPES; Database language driver; Direct BDE calls; Exclusive property; File sharing; IDAPI; IDAPI logical field types; In-memory tables; LOCKS in-memory table; Lock retry period; LockTable; Locking; Multi user; Number of open table cursors; Record locks; Table locks; Temporary tables; UnlockTable; UpdateCursorPos; dbiAnsiToBNative; dbiCreateTempTable; dbiGetNextRecord; dbiGetPriorRecord; dbiGetRecord; dbiGetTableOpenCount; dbiIsRecordLocked; dbiIsTableLocked; dbiNativeToAnsi; dbiOpen... functions list; dbiRelRecordLock; dbiSetLockRetry; dbiSetToBegin; dbiSetToEnd |
Under Construction: Delphi 2 and CGI | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Bob Swart develops an interactive World Wide Web based version of The Delphi Magazine Book Review Database, showing that developing applications for the Internet is nothing to be scared of! | ||
Keywords | Browser; CGI; CGI database applications; Common Gateway Interface; Environment variables; Generating HTML; HTML; HTML forms; ISAPI; Internet; Internet applications; Intranet; NSAPI; Paradox field types; Under Construction; WinCGI; Windows NT; World Wide Web |
Integrating C++ classes into Delphi applications | |||
---|---|---|---|
Authors | Mzwanele | Type: Article | |
Issue | 15 : November 1996 | View article | View source code |
Summary | If you have come to Delphi from C++ you may well have lots of classes you'd like to use in your new Delphi apps -- well, Mzwanele is here to show you how, courtesy of Microsoft's Component Object Model. | ||
Keywords | C calling convention; C++; C++ classes in Delphi; COM; Calling DLLs; Component Object Model; Event handlers in C++; Fastcall calling convention; OLE Automation; OWL classes in Delphi; Pascal calling convention; VTBL; Virtual function table; Virtual method table |
Book Review: Delphi Database Development | |||
---|---|---|---|
Authors | Richard Stevens | Type: Review | |
Issue | 15 : November 1996 | View article | No source code |
Summary | By Ted Blue, John Kaster, Greg Lief and Loren Scott | ||
Keywords | Book Reviews; Greg Lief; John Kaster; Loren Scott; Ted Blue |
Surviving Client/Server: More data processing with SQL | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 15 : November 1996 | View article | No source code |
Summary | This month Steve rounds off his look at SQL's data processing capabilities, covering cross tabs, hierarchical data, case statements and more | ||
Keywords | Advanced SQL; CASE statement in SQL; Client/Server; Cross tabulations; Frequency distributions; Hierarchical data; MS SQL Server; Outline; SQL; SQL CASE; SQL data processing; SQL: COALESCE; SQL: GROUP BY; Surviving Client/Server; Temporary tables |
Beating the System: Getting things into context | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Dave shows how to implement your own add-in context menus for Windows 95 and NT 4.0 Explorer | ||
Keywords | Beating The System; CAB file format; CABVIEW; CLSID; Context menus; DLLs; Explorer; Object-Site Shell Suite; REGEDIT; Registry; Registry files: importing; UUIDGEN.EXE; Win32; Windows 95; Windows NT 4.0; Writing DLLs |
Review: MK Query Builder | |||
---|---|---|---|
Authors | Tim Boyd | Type: Review | |
Issue | 15 : November 1996 | View article | No source code |
Summary | MK Query Builder can be built into your applications to allow end-users to perform custom run time queries and create reports. | ||
Keywords | MK Query Builder; Reviews |
Memory Sleuth | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 15 : November 1996 | View article | No source code |
Summary | Memory Sleuth is a software testing and debugging tool from TurboPower Software | ||
Keywords | Memory Sleuth; TurboPower Software |
TDBGrid scrollbar odd behaviour | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | TDBGrid scrollbar odd behaviour | ||
Keywords | Scrollbar TDBGrid; TDBGrid |
Paradox picture validation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Paradox picture validation | ||
Keywords | EditMask; Paradox tables; Picture validation; Validation |
Moving the mouse | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Moving the mouse | ||
Keywords | Coordinates; Mouse cursor; Moving the mouse cursor; Screen and form coordinates; SetCursorPos |
Dropping the combobox | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Dropping the combobox | ||
Keywords | Combobox; DroppedDown; Dropping combobox |
DBGrid row height | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | DBGrid row height | ||
Keywords | DBGrid; Setting DBGrid row height; TStringGrid; Typecasting |
Generic field access | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Generic field access | ||
Keywords | FieldAddress; Generic field access; Help; HelpContext |
Paradox passwords | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Paradox passwords | ||
Keywords | Change table password; Paradox passwords; Paradox tables; Table passwords: setting |
Form creation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Form creation | ||
Keywords | Create; CreateForm; Form creation |
Network user name | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Network user name | ||
Keywords | GetUserName; Login name; Network user name; User name; WNetGetUser; Win32; Windows user login name; dbiGetNetUserName |
Changing boolean display | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Changing boolean display | ||
Keywords | Boolean; Boolean fields; Changing boolean display |
TLists revisited | |||
---|---|---|---|
Authors | Mark Williams | Type: Tip | |
Issue | 15 : November 1996 | View article | View source code |
Summary | TLists revisited | ||
Keywords | Freeing memory; TList |
Showing modal forms | |||
---|---|---|---|
Authors | Glenn Shukster | Type: Tip | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Showing modal forms | ||
Keywords | Modal forms; Showing modal forms |
Rich text on the clipboard | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Rich text on the clipboard | ||
Keywords | Clipboard; Clipboard formats; Delphi 2; RTF; Rich text format; Rich text on the clipboard; Win32 |
Which event? | |||
---|---|---|---|
Authors | Steve Tung | Type: Tip | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Which event? | ||
Keywords | Event handling; Event sequence; Flow of events; OnCloseQuery |
Text file device drivers in 32-bit land | |||
---|---|---|---|
Authors | Jon Jacobs | Type: Tip | |
Issue | 15 : November 1996 | View article | View source code |
Summary | Text file device drivers in 32-bit land | ||
Keywords | Delphi 2; String parsing; TFDD; Text file device drivers; Win32 |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 15 : November 1996 | View article | No source code |
Summary | A geek, moi? | ||
Keywords | One Last Compile |
Developing Dynamic Web Pages | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Steve takes us deeper into the creation of Web applications, developing a CGI component that works with both conventional CGI and WinCGI | ||
Keywords | CGI; FastCGI; ISAPI; Internet applications; NSAPI; Standard CGI; URL encoding; WinCGI; World wide web |
Introducing Delphi RTTI | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Marco reveals some of the hidden secrets in Delphi's run time type information, showing how you can access everything from simple type information to full component property details at run time | ||
Keywords | RTTI; RTTI for classes; RTTI for cursors and colours; RTTI for enumerated types; RTTI for method pointers; RTTI for ordinal types; RTTI for properties; Run time type information; SortPropList; TYPINFO.PAS |
Simple Screen Savers | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Paul has a festive treat: create custom screen savers which will impress, complete with sound and animation, using his screen saver expert. Note that additional files for this article are available on our web site at http://members.aol.com/delphimag | ||
Keywords | Animation; Bitmap manipulation; Experts; Gradient fills; HPrevInst; Off-screen drawing; Screen savers; Single instance of program; Sprites |
Surviving Client/Server: Managing User Logins, Part 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Steve shows how to build a powerful login manager with password management and audit trail capabilities | ||
Keywords | Audit trail; Client/server; Data modules; Login; Login manager; Logon; Password control; SQL: CREATE TABLE; Surviving Client/Server; TDatabase |
Under Construction: Knowledge Based Solutions | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Bob's specialist area is knowledge based systems and here he explains how to create simple but powerful rule based systems using both forward and backward chaining. This is the first of a 2-part series. | ||
Keywords | Artificial intelligence; Backward chaining; Disk full error with Delphi; Expert systems; Forward chaining; Inference engine; Knowledge based systems; Rule based systems; Under Construction |
Beating The System: Code Generation and Optimisation | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 16 : December 1996 | View article | No source code |
Summary | Dave delves into the innards of Delphi's code generator to demonstrate how to write more efficient applications | ||
Keywords | Beating The System; Case statement; Code generator; Efficiency; Format routines; Get-Set procedures; Machine code; Open arrays; Optimisation; With statement |
Hints With Attitude | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Brian explains how to customise your hint windows, even changing the window shape | ||
Keywords | ActivateHint; CM_TEXTCHANGED message; Custom hint shape; Hint window; HintWindowClass; Hints; Hints in status bar; OnHint; Pipe character in hint (|); ShowHint; THintWindow; ToolTip window; ToolTips |
Book Review: Delphi 2 Developers Guide | |||
---|---|---|---|
Authors | Richard Stevens | Type: Review | |
Issue | 16 : December 1996 | View article | No source code |
Summary | Written by Xavier Pacheco and Steve Teixeira | ||
Keywords | Book reviews; Steve Teixeira; Xavier Pacheco |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 16 : December 1996 | View article | No source code |
Summary | Programmers are from Mars, users are from Alpha Centauri | ||
Keywords | One Last Compile |
FileMode Failure | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 16 : December 1996 | View article | View source code |
Summary | FileMode Failure | ||
Keywords | ERROR_SHARING_VIOLATION; FileMode bug Delphi 2; SYSTEM unit bugs Delphi 2; _ResetFile |
System Modal Forms | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 16 : December 1996 | View article | View source code |
Summary | System Modal Forms | ||
Keywords | Making forms system modal; SetSysModalWindow; ShowModal; Stop application switching; Windows API; System modal forms |
System Error Message | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 16 : December 1996 | View article | View source code |
Summary | System Error Message | ||
Keywords | CreateProcess; ERROR_BAD_EXE_FORMAT; GetLastError; Getting error message text; SysErrorMessage; SysUtils unit |
Waiting for Termination | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Waiting for Termination | ||
Keywords | CreateProcess; Executing external program; GetModuleUsage; ShellExecute; ShellExecuteEx; WaitForSingleObject; Waiting for launched program; Win32; WinExec |
Single instance only | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Single instance only | ||
Keywords | 32-bit; Atoms; Detecting previous instance; GlobalAddAtom; GlobalDeleteAtom; GlobalFindAtom; HPrevInst; Semaphore API; Single instance of program; Win32 |
Thunking update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Thunking update | ||
Keywords | Calling 16-bit from 32-bit; QT_Thunk; Thunking |
Memory mapped files | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Memory mapped files | ||
Keywords | Boyer Moore; Memory mapped files; Patch programs; Patching EXE files; Searching a buffer; Streams; TFileStream; Text searching; Virtual memory manager; Win32 |
Smart drag and drop | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Smart drag and drop | ||
Keywords | Drag and drop; Drag and drop component; DragAcceptFiles; DragFinish; FindDragTarget; MakeObjectInstance; WM_DROPFILES message |
Listbox keyboard miscellanea | |||
---|---|---|---|
Authors | Brian Long | Type: Tip | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Listbox keyboard miscellanea | ||
Keywords | Listbox keyboard commands; TListBox |
Creating a WAV file | |||
---|---|---|---|
Authors | Nick Hodges | Type: Tip | |
Issue | 16 : December 1996 | View article | View source code |
Summary | Creating a WAV file | ||
Keywords | Creating WAV files; MCISendCommand; MMSYSTEM unit; Sound; TMediaPlayer; TWaveHeader; WAV files |
Multi-Threaded Database Access With Delphi 2.0 | |||
---|---|---|---|
Authors | Neil McClements | Type: Article | |
Issue | 17 : January 1997 | View article | View source code |
Summary | How to use threads to good effect in your 32-bit database applications. | ||
Keywords | 32-bit; BDE; Callback threads; Database applications; Multi-Threading; Priority of threads; Spinning cursor; Synchronize threads; TThread; Threaded TDatabase; Threaded database apps; Threads |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 17 : January 1997 | View article | No source code |
Summary | Blazing a trail on the electronic frontier | ||
Keywords | One last compile |
Developing Dynamic Web Pages: Part 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Steve describes how to add database support to your Web apps, using TDMAid Online, our own web-based article index database, as an example. | ||
Keywords | BDE; BDE on NT Server with NTFS; CGI; CGI component; Console applications; Database; Exceptions and console apps; Generating HTML; Internet; SQL; World wide web |
Book Review: Secrets of Delphi 2 by Ray Lischner | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 17 : January 1997 | View article | No source code |
Summary | |||
Keywords | Book review; Ray Lischner |
Under Construction: TRuleBase Component | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Bob returns to the theme of knowledge-based systems, developing rulebase and factbase components with supporting property and component editors too. | ||
Keywords | Backward chaining; Certainty factors; Component editors; Database; Expert systems; Factbase; Forward chaining; Inference engine; Knowledge-based systems; Open Tools API; Property editors; Rule-based systems; Rulebase; Under Construction |
Beating The System: Code Generation Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 17 : January 1997 | View article | No source code |
Summary | Dave has more insights into Delphi's code generator, including how try-finally blocks work, exception handling and nested procedures, with a summary of hints for slimmer code. | ||
Keywords | Beating The System; Delphi's code generator; ExceptList; Exception handling; Get-Set routines; Nested procedures; Open arrays; Optimisation; Performance enhancement; With statements; try-except blocks; try-finally blocks |
Sharing Data With The Win32 API | |||
---|---|---|---|
Authors | John Chaytor | Type: Article | |
Issue | 17 : January 1997 | View article | View source code |
Summary | John creates Delphi classes to make data sharing between applications easier, with a full explanation of the API goodies that make it all possible. | ||
Keywords | Accessing resources; CloseHandle; CreateEvent; CreateFileMapping; CreateMutex; CreateSemaphore; Data sharing between apps; Event objects; Kernel objects; MapViewOfFile; Memory mapped files; Mutex objects; ReleaseSemaphore; ResetEvent; Semaphore objects; SetEvent; Shared memory; Signalling; UnMapViewOfFile; WaitForMultipleObjects; WaitForSingleObject; Win32 API |
Surviving Client/Server: Managing User Logins, Part 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Steve continues developing his login manager, this month adding support for tracking unsuccessful logins and password management | ||
Keywords | Audit trail; Changing passwords; Client/server; Expired passwords; Login manager; Password management; Surviving Client/Server; Tracking uncuccessful logins |
Paradox table corruption | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Reasons for and fixes for Paradox table corruption | ||
Keywords | BDE; Data loss; Database; Fixing Paradox tables; Local Share; Lost records; Multi-user; Paradox table corruption; Peer to peer networks; Rebuilding indexes; SHARE.EXE; TUtility; VSHARE; Windows for Workgroups; dbiDoRestructure |
Debugging DLLs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 17 : January 1997 | View article | View source code |
Summary | How to debug DLLs, components and experts | ||
Keywords | Debugging DLLs; Debugging components; Debugging experts; Turbo Debugger |
Annoying Workgroup Menu | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 17 : January 1997 | View article | View source code |
Summary | How to remove the Delphi 2 Workgroup menu | ||
Keywords | Delphi 2; Registry; Workgroup menu, removing |
Making A Unique Key Value | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Tips on creating unique index key values, and whether you should try | ||
Keywords | Database; Indexing; Unique index keys; Unique key values |
The Millenium Bug | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Displaying database dates with 4-digit years to overcome the so-called millenium bug. | ||
Keywords | 4-digit year in dates; Database; Date records; Millenium bug; Year 2000 |
Bit Manipulation | |||
---|---|---|---|
Authors | Reinhard Greeven | Type: Tip | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Enhanced bit manipulation class | ||
Keywords | Bit manipulation class; Fake classes |
Version information | |||
---|---|---|---|
Authors | Peter J Morriss | Type: Tip | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Adding version information to EXEs and DLLs | ||
Keywords | Version information in EXEs |
3D Window Borders | |||
---|---|---|---|
Authors | Dave Jewell | Type: Tip | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Adding 3D borders to MDI windows like in Microsoft Apps | ||
Keywords | 3D MDI Window borders; 3D Window borders; MDI; WS_EX_CLIENTEDGE; Window style bits |
Searching all drives for a file | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 17 : January 1997 | View article | View source code |
Summary | Searching all drives for a file | ||
Keywords | Drive list; File search on all drives; Nested procedures; Recursion; Searching for files; Valid drives |
Under Construction: Talking DDE To PragMan | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Bob develops 16-bit and 32-bit DDE components to work with your Windows environment: creating groups or folders, adding items and so on. | ||
Keywords | 32-bit DDE; Adding icons; Building components; Creating groups; DDE; DDE macro commands; DDE parameter packing; DDEML; Dynamic Data Exchange; Explorer; Message handling; PROGMAN; Porting strings to 32-bits; Program Manager; ShortString; Under Construction; WM_DDE_ACK; WM_DDE_DATA; WM_DDE_EXECUTE; WM_DDE_INITIATE; WM_DDE_REQUEST; WM_DDE_TERMINATE; Windows environment; Windows messages |
Dynamic Loading And Unloading Of Fonts | |||
---|---|---|---|
Authors | Stewart McSporran | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | If your application uses custom fonts, this article shows how to load them temporarily just for your application and then unload them | ||
Keywords | AddFontResource; CreateScalableFontResource; Dynamic fonts; FOT and TTF files; Font resources; GetTempDrive; GetTempFileName; GetTempPath; Installing fonts; Loading fonts; Locating TEMP directory; Naming temporary files; RemoveFontResource; Temporary files; TrueType fonts; Uninstalling fonts; Unloading fonts; WM_FONTCHANGE |
Beating The System: Coolbars - the route to ultra-cool apps | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | How to create CoolBars the ultra-cool way. Note that the disk for this issue also contains two implementations of CoolButtons, one freeware and one shareware. | ||
Keywords | Beating The System; COMCTL32.DLL; COMMCTRL unit; Common control style flags; CoolBars; CreateWindowEx; InitCommonControlsEx; Message handling; MoveWindow; ToolBarWindow32; Windows 95; Windows Common Controls; Windows NT 4.0 |
A Truly Usable Message Box | |||
---|---|---|---|
Authors | Steven J Colagiovanni | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | How to overcome the problems and limitations of the built-in messsage boxes and learn lots of useful techniques along the way. | ||
Keywords | Add components at run time; Application modal forms; Application.MessageBox; Automatic word breaks; Beeps and sounds; BorderIcons property; Calculate dialog size; Centre form on screen; Centre form over application; Create form at run time; Creating glyphs; Cursor handling; Custom message boxes; DT_CALCRECT; DT_NOPREFIX; DT_WORDBREAK; Disabling System menu items; DrawText; Font sizing; GetSystemMenu; Glyphs in video driver; Include & in text; LoadIcon; Message boxes; Message dialogs; MessageBeep; MessageDlg; MessageDlgPos; Quick beep; RemoveMenu; ShowMessage; ShowMessagePos; Space needed by text; System menu; System modal forms; Text rectangle |
Book Review: Delphi Client/Server Developer's Guide | |||
---|---|---|---|
Authors | Steve Troxell | Type: Review | |
Issue | 18 : February 1997 | View article | No source code |
Summary | Written by Joseph D Booth | ||
Keywords | Book Reviews; Client/Server; Joseph D Booth |
Surviving Client/Server: Managing User Logins Part 3 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Steve concludes his login manager, adding support for database/server overrides and handling multiple databases | ||
Keywords | Aliases; BDE; Changing database at runtime; Changing server at runtime; Client/Server; Login manager; Multiple databases; Overriding database; Overriding server; Surviving Client/Server; TDatabase.AliasName |
Managing Your Memory | |||
---|---|---|---|
Authors | David Selwood | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | How to make the most of your precious data segment | ||
Keywords | $M compiler directive; Calculating free DOS memory; Calculating memory use; Data segment; GetFreeSpace; GetFreeSystemResources; Global heap; Local heap usage; Memory management; Setting stack size; Stack usage; Windows heap; Windows task database |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 18 : February 1997 | View article | No source code |
Summary | Leading from the back | ||
Keywords | One last compile... |
Generic MakeMethodInstance For 16/32 Bit Applications | |||
---|---|---|---|
Authors | John Chaytor | Type: Article | |
Issue | 18 : February 1997 | View article | View source code |
Summary | How to get at those useful callback routines to support object methods | ||
Keywords | Allocating memory; Callbacks; Convert method to function; Creating machine code; Executable memory; Executing memory; Hidden Self variable; Inserting into stack; Intel machine code; MakeObjectInstance; Manipulating the stack; Object methods; OpCodes; PAGE_EXECUTE_READWRITE; Pascal calling convention; Register calling convention; Scanning a directory; VirtualAlloc; VirtualFree |
Explorer-Like DBGrid | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Column-sorting column headers for DBGrid like Windows Explorer | ||
Keywords | Column headers; DBGrid; Self--sorting columns; Sorting columns; SysHeader32; SysListView32; THeaderControl; TListView; Windows Explorer |
Clearing contents of a TIMage | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | How to clear a TImage's contents at runtime | ||
Keywords | Clearing contents of TImage; Freeing TImage resources |
Storing bitmap image in form file | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Storing bitmap image in form file | ||
Keywords | Bitmap property editors; Storing bitmap in form file; Storing image in form file; TPicture |
Edit mask hang bug | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Edit mask hang bug | ||
Keywords | Edit mask bug; TEditMask bug and fix |
Using Object Browser | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Using Object Browser | ||
Keywords | Symbol information; Using Object Browser |
Implementing a splitter | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Implementing a splitter | ||
Keywords | Implementing a splitter; Splitter component; TSplitControl |
Stay on top watch window | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Stay on top watch window | ||
Keywords | Keep watch window on top; Keep window on top; NormalizeTopMosts; Stay on top; Stay on top watch window |
Unique key values (update from Issue 17) | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Unique key values (update from Issue 17) | ||
Keywords | Index keys; Unique key values; Update from Issue 17 |
Single instance only (update from Issue 16) | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Single instance only (update from Issue 16) | ||
Keywords | Single instance; Update from Issue 16 |
TDBGrid Columns | |||
---|---|---|---|
Authors | Roberto De Marini | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | TDBGrid columns | ||
Keywords | HideEditor; TDBGrid Columns property; TDBGrid bug Delphi 2; WM_HSCROLL message |
FreeObject instead of Free | |||
---|---|---|---|
Authors | Reinhard Greeven | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | FreeObject instead of Free | ||
Keywords | Free an object; FreeObject; Set object pointer to nil |
Property Read/Write Fields | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Property Read/Write Fields | ||
Keywords | Property read/write fields |
Bug in Delphi 2 ComboBox | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Bug in Delphi 2 ComboBox | ||
Keywords | Bug in Delphi 2 ComboBox; ComboBox bug; SelLength in TComboBox; SelStart in TComboBox |
Delphi 2 for loop bug | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Delphi 2 for loop bug | ||
Keywords | Delphi 2 for loop bug |
Generating compile date | |||
---|---|---|---|
Authors | Thilo Bretschneider | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Generating compile date | ||
Keywords | Generating compile date |
Environment variables | |||
---|---|---|---|
Authors | The African Chief | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Environment variables | ||
Keywords | Environment variables; GetEnvVar for Delphi; PATH |
Selecting the component library | |||
---|---|---|---|
Authors | Phil Alexander | Type: Tip | |
Issue | 18 : February 1997 | View article | View source code |
Summary | Selecting the component library | ||
Keywords | COMPLIB.DCL; DCL files; Selecting component library |
Book Review: Delphi 2 Developer's Solutions | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Review | |
Issue | 19 : March 1997 | View article | No source code |
Summary | Written by Nathan Wallace and Steve Tendon | ||
Keywords | Book Review; Nathan Wallace; Steve Tendon |
C++ Builder For Delphi Users | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 19 : March 1997 | View article | No source code |
Summary | Brian Long has burned the midnight oil doing an in-depth evaluation for us. | ||
Keywords | C++ Builder; C++ and Pascal; C++ language basics; C++ operators; C++ switch statement; Open arrays in C++; RTTI in C++; Sets in C++; Variants in C++ |
Under Construction: A Delphi 2.01 Debugger | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Delphi builds great CGI applications for the internet, now you can easily debug or demo them without a web server using Bob Swart's new CGI debugger,built using the NetManage ActiveX controls which come with Delphi 2.01 | ||
Keywords | CGI; Debugging CGI apps; HTML browser; HTML forms; Internet; Internet Solutions Pack; NetManage ActiveX controls; URLs for local files; Under Construction:; Web browser; WinCGI; World wide web |
Internet Apps With ISAPI | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Steve Troxell demonstrates how to use the API for Microsoft's IIS web server to good effect for go-faster internet apps | ||
Keywords | CGI; DLLs; ISAPI; Internet; Internet Information Server; Internet applications; Microsoft IIS; Server callback functions; Web browser; Web server APIs; Web server extensions; World wide web |
Beating The System: Managing Desktop Shortcuts | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Returning to the Win95 / NT4.0 shell, Dave Jewell shows how to add shortcuts onto the desktop from your installation programs | ||
Keywords | Beating The System; CoInitialize; CoUnInitialize; Desktop folder; Explorer COM interfaces; IShellLink; Shell API; Shell link bugs; Shell links; Shortcut description bug; Shortcuts; Windows 95; Windows NT 4 |
16-Bit Serial Communications | |||
---|---|---|---|
Authors | John Chaytor | Type: Article | |
Issue | 19 : March 1997 | View article | View source code |
Summary | John Chaytor de-mystifies the Windows 3.1x serial comms API and builds an easy to use Delphi class to get you going | ||
Keywords | Asynchronous communications; Baud rate; COMM.DRV; CTS/RTS flow control; Comm lines status; Convert data to bit stream; DTR/DSR flow control; Device control; Dial; Flow control; Hang up; Hardware flow control; IRQ and Base I/O address; Parity; Serial Data Unit SDU; Serial cable; Serial comms errors; Serial communications; Serial port; UART chip; Windows comms API; Windows serial comms class; Windows serial comms driver |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 19 : March 1997 | View article | No source code |
Summary | Components? I can handle them | ||
Keywords | One Last Compile... |
Surviving Client/Server: Customized User Administration | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Steve Troxell creates a user administration application which you can easily customize and build into your own client/server systems | ||
Keywords | Adding users; Client/server; Database administrator; Login manager; Password administration; RDBMS API; SQL; Stored procedures; Surviving Client/Server; TDatabase; User administration; User security |
Review: Anchor-P Copy Protection | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 19 : March 1997 | View article | No source code |
Summary | There are many dongles around, but this one from BL Computer Security comes with a Delphi expert to generate customized interface code for your applications; Dave Jewell gives it the eagle eye | ||
Keywords | Anchor-P Copy Protection; BL Computer Security; Copy protection; Dongle; Experts; Review; Security Key |
Window startup mode | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Window startup mode | ||
Keywords | CmdShow; Delphi 2; Multiple entries in taskbar; Start program minimised; Start program minimized; Taskbar; Window startup mode; WindowState |
OCX Deployment | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 19 : March 1997 | View article | View source code |
Summary | OCX Deployment | ||
Keywords | Class not registered; DLLRegisterServer; EOleError; Installing OCX controls; LoadLibrary; OCX Deployment |
Oracle packages | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Oracle packages | ||
Keywords | Oracle 7.2; Oracle packages bug; SQL; SQL Links 3.5; Stored procedures |
File finding | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 19 : March 1997 | View article | View source code |
Summary | File finding | ||
Keywords | Callbacks; File finding; FindClose; FindFirst; FindNext; Search for a file; Search for and act on files; TSearchRec |
Eating mouse clicks and key presses | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Eating mouse clicks and key presses | ||
Keywords | Application.ProcessMessages; Eating key presses; Eating mouse clicks |
TApplication's missing events | |||
---|---|---|---|
Authors | Jim Cooper | Type: Tip | |
Issue | 19 : March 1997 | View article | View source code |
Summary | TApplication's missing events | ||
Keywords | CreateForm wrongly declared; Delphi Help file errors; Help links broken; HintHidePause property; HintMouseMessage; HintShortPause property; TApplication missing events; TApplication.CreateHandle; TApplication.HideHint; TApplication.Initialize; TApplication.ShowMainForm; UpdateFormatSettings |
Heap checking | |||
---|---|---|---|
Authors | Roberto De Marini | Type: Tip | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Heap checking | ||
Keywords | Custom memory manager; GetMemoryManager; Heap checker unit; Heap checking; Install memory manager; SetMemoryManager; TMemoryManager |
Combo box helpers | |||
---|---|---|---|
Authors | Kent Shaw | Type: Tip | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Combo box helpers | ||
Keywords | Combo box helpers; Filling DBLookupCombo; Filling TDBComboBox |
Data validation, required fields and null values | |||
---|---|---|---|
Authors | Glen Janken | Type: Tip | |
Issue | 19 : March 1997 | View article | View source code |
Summary | Data validation, required fields and null values | ||
Keywords | BeforePost event; Data validation; Required fields, null values |
Beating the System: Explorer-style active buttons | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Having shown us how to easily create CoolBars, Dave is back with the low-down on making the buttons to go onto them! | ||
Keywords | 3D captions; Active button; Beating the system; Button with popup menu; Capturing mouse activity; Component development; Controls with window handle; Cool button; CoolBar; Creating disabled glyphs; Explorer button component; Flat buttons; Internet Explorer; MouseCapture; Popup menus; Rebar; TTimer needs window handle; Transparent colors |
One last compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 20 : April 1997 | View article | No source code |
Summary | Getting by (with a little help from my friends) | ||
Keywords | One last compile... |
The Delphi 3 Novelty Store | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 20 : April 1997 | View article | No source code |
Summary | The first part of an in-depth preview of Delphi 3 | ||
Keywords | $DenyPackageUnit; $DesignOnly; $ImportedData; $RunOnly; $WeakPackageUnit; Asian language support; Assertions; BDE 4 with Dephi 3; BDE administrator; BLOb caching; Business insight; CPU window; Code completion; Code insight; Code parameters; Code templates; Component templates; Creating ActiveX controls; Decision Cube; Delphi 3 IDE; Delphi 3 and databases; Delphi 3 compiler directives; Delphi 3 preview; Distributed datasets; EnableCPU in Registry; Explorer style buttons; Expression evaluator; Flat buttons; ISAPI, ISAPI2; JPEG support; Mutex; NSAPI; New Delphi 3 componments; Package collections; Packages; Rebar; Resourcestring; Semaphores; String resources; TAnimate; TChart; TCheckListBox; TCoolBar; TDBNavigator; TDBRichEdit; TDataSet Delphi 3; TDateTimePicker; TDecisionCube; TDecisionGrid; TOpenPictureDialog; TProvider; TSavePictureDialog; TSpeedButton; TSplitter; TStaticText; WideString; Win32Check; WinINET |
Surviving Client/Server: User-defined SQL functions | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 20 : April 1997 | View article | View source code |
Summary | How to create user-defined functions for Interbase in Delphi | ||
Keywords | Client/server; DECLARE EXTERNAL FUNCTION; DROP EXTERNAL FUNCTION; Date fields in Interbase; Interbase; Interbase and Delphi types; Interbase built-in functions; Interbase datatypes; Linking DLLs to Interbase; Reading Interbase BLOBs; SQL; Strings in SQL; Surviving client/server; User-defined SQL functions; User-defined functions |
Under Construction: Multi-threading in components | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 20 : April 1997 | View article | View source code |
Summary | How to add multi-threading to components and applications, with tips on concurrent programming | ||
Keywords | Concurrent programming; Creating threads; Dining philosophers problem; Multi-tasking; Multi-threading; Multi-threading in VCL; Mutli-threading efficiency; TThread; TThread.Execute; TThread.Synchronize; Terminating threads; Thread class expert; Thread priority; Thread-safe VCL; Threads; Under Construction |
Things you can do with standard controls: the ListBox | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 20 : April 1997 | View article | View source code |
Summary | How to get more out of TListBox: displaying non-text items, adding tab support, adding horizontal scrollbar | ||
Keywords | ComboBox; CreateParams; CreateWnd; DestroyWnd; Dialog measurment units; GetDialogBaseUnits; Graphics in ListBox; Horizontal scrollbar listbox; Non-text items in ListBox; Owner draw ComboBox; Owner draw ListBox; Owner draw controls; RecreateWnd; Saving listbox contents; Scrolling listbox; TListBox; Tab characters in ListBox; TabStopSupport; lb_SetHorizontalExtent; lbs_SetTabStops; lbs_UseTabStops |
Review: Async Professional for Delphi 2.01 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 20 : April 1997 | View article | No source code |
Summary | Review of Async Professional for Delphi serial communications library from TurboPower Software | ||
Keywords | Async Professional; Serial communications; TurboPower Software |
Client/Server caching using file streams | |||
---|---|---|---|
Authors | Neil McClements | Type: Article | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Database client applications can get bogged down accessing rarely-changing data from the server. Neil shows how to overcome this by using file streams to cache such data, presenting cached combobox and cached calendar controls too. | ||
Keywords | Cache; Cached calendar; Cached combo box; Client/server; Data caching; File modes using streams; File streams; LoadFromStream; SaveToStream; TCalendar; TComboBox |
Getting Delphi 2 and 3 help files to co-exist | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Getting Delphi 2 and 3 help files to co-exist | ||
Keywords | Delphi 2 help files; Delphi 3 help files; Registry |
Trapping keystrokes in a TCheckBox | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Trapping keystrokes in a TCheckBox | ||
Keywords | PostMessage; ProcessMessages; SendMessage; Sending messages; TCheckBox; Trapping keypresses; Trapping keystrokes; Windows message handling; cm_WantSpecialKey; cn_KeyDown; wm_GetDialogCode; wm_KeyDown |
Property editors for properties of components in DLLs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Property editors for properties of components in DLLs | ||
Keywords | Components in DLLs; Property editors |
ShellExecuteEx doesn't work under Windows NT | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 20 : April 1997 | View article | View source code |
Summary | ShellExecuteEx doesn't work under Windows NT | ||
Keywords | Calling external programs; Executing external programs; ShellExecuteEx not for WinNT; Windows NT |
Direct access to hardware ports | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Direct access to hardware ports | ||
Keywords | CMOS access; Calling 16-bit DLLs; Device drivers; Direct access to ports; Hardware access; Port access in 32-bit; Port and PortW |
Class methods for cleaner, more reliable code | |||
---|---|---|---|
Authors | Stephan Westen | Type: Tip | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Class methods for cleaner, more reliable code | ||
Keywords | Avoiding global variables; Class methods; Creating forms at runtime |
Managing stored procedures | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Managing stored procedures | ||
Keywords | CREATE PROCEDURE; DROP PROCEDURE; Installing stored procedures; Managing stored procedures; SQL |
Re-opening closed datasets | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Re-opening closed datasets | ||
Keywords | Active property not saved; Re-opening closed datasets |
Table cloning | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Table cloning | ||
Keywords | Mutliple table handles; TTable; Table cloning |
BDE Paradox driver bug for BLOB fields of size zero | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 20 : April 1997 | View article | View source code |
Summary | BDE Paradox driver bug for BLOB fields of size zero | ||
Keywords | BDE Paradox driver bug; BLOB fields of size zero; CreateTable; Creating Paradox tables; dbiTranslateRecordStructure |
Initialized variables | |||
---|---|---|---|
Authors | Rick Hansen | Type: Tip | |
Issue | 20 : April 1997 | View article | View source code |
Summary | Initialized variables | ||
Keywords | Initialized variables |
The Delphi 3 Novelty Store: Part 2 | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 21 : May 1997 | View article | No source code |
Summary | Brian Long returns with the second part of his in-depth preview of Delphi 3, covering the new Common ObjectModel, class interface and OLE Automation features, plus one-step ActiveXs, Active Forms, Web application building and more... | ||
Keywords | Active insight; ActiveForms; COM; COM Classes; Calling conventions; Class Identifier (CLSID); Class factories; Class interface; ClassIDToString; Component Object Model; CreateOLEObject; Creating ActiveX controls; DCOM; Delphi 3; Distributed COM; Dual interface COM object; EIntfCastError; Entera; GuidToString; IDispatch; ISAPI; IUnknown; Interface ID (IID); Interface querying; Interface reserved word; Multiple interfaces; NSAPI; OLE; OLE Automation; OLEnterprise; Open Environment tools; StringToClassID; StringToGuid; TAutoObject; TComObjectFactory; TComServer; TDatasetTableProducer; TGUID; TInterfacedClass; TInterfacedObject; TPageProducer; TQueryTableProducer; TWebDispatcher; Type libraries; Virtual method table (VMT); Web server applications; coclass; safecall |
Review: Reporting Tools | |||
---|---|---|---|
Authors | David Sutherland | Type: Review | |
Issue | 21 : May 1997 | View article | No source code |
Summary | David Sutherland has been closeted away with five of the leading reporting tools for Delphi and is now ready to spill the beans with an in-depth evaluation of Ace Reporter, Piparti Pro, QuickReport, Report Printer Pro and Shazam Report Wizard ─ if you need to build reports this is one review that shouldn't be missed | ||
Keywords | Ace Reporter; Delphi reporting tools; Digital Metaphors; Nevrona; Piparti Pro; QDS; QuickReport; Report Printer Pro; Report components; Report writing tools; Reviews; SCT Associates; Shazam Report Wizard; Shazam Ware |
Under Construction: Delphi Wizard Magic | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 21 : May 1997 | View article | View source code |
Summary | We've made Experts before, but now Bob Swart shows how to turn them into Wizards with an interface consistent with you know who, along with details of how to make Wizards binary compatible with both Delphi and C++Builder! | ||
Keywords | Component templates; Creating Wizards; Creating experts; Delphi 3; Interface guidelines; ShareMem Delphi, C++ Builder; TIExpert; Under Construction; Wizard expert; Wizard interfaces; Wizards for C++ Builder |
Reducing Server Load | |||
---|---|---|---|
Authors | Jan Casteels | Type: Article | |
Issue | 21 : May 1997 | View article | No source code |
Summary | In a client/server application, howyou write and process your SQL statements can have a dramatic affect on the performance of the system, asJan Casteels demonstrates, with of course some practical advice on getting the best results | ||
Keywords | Client/server; Database server load; Network server traffic; Oracle 7; Oracle V$SQLAREA table; Performance tuning; Prepare; Preparing SQL queries; Reducing server memory use; SQL; Server performance analysis; Static and dynamic SQL |
One Last Compile: Good programming practices #137: the job ads | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 21 : May 1997 | View article | No source code |
Summary | Good programming practices #137: the job ads | ||
Keywords | One last compile |
Beating the System: Manipulating 16-bit resources | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 21 : May 1997 | View article | View source code |
Summary | There's gold locked away inside all those EXE and DLL files on your system: resources of all kinds, from icons to dialogs, and this month Dave Jewell shows how to go on a resource-mining expedition! | ||
Keywords | Beating the system; ExtractIcon; Extracting resources; Resource tables; Resource types; Resources in DLLs and EXEs; Windows NE file format; Windows New Exexcutable |
TCP/IP data transfer with the NetManage TCP ActiveX | |||
---|---|---|---|
Authors | Bill Fisher | Type: Article | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Since version 2.01 Delphi has includeda set of internet-related ActiveX controls, here Bill Fisher demonstrates how to use the TCP control to transfer bitmaps, sounds and EXE files over a TCP/IP connection, whether it be on your LAN or over the internet | ||
Keywords | Delphi 2 internet controls; Internet applications; NetManage TCP ActiveX; Networks; TCP/IP binary data transfer; Using ActiveX controls |
Making StringGrid cells non-selectable | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Making StringGrid cells non-selectable | ||
Keywords | CanSelect property; Making cells non-selectable; OnSelectCell; Prevent cell highlighting; Selecting StringGrid cells; TStringGrid; goRangeSelect |
Setting TComboBox drop-down width | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Setting TComboBox drop-down width | ||
Keywords | ReleaseHandle; TComboBox drop down width; Typecasting; cb_SetDroppedWidth |
Polymorphic procedure calls | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Polymorhpic prodcedure calls | ||
Keywords | Polymorphic procedure calls; Procedural variables; Procedure types |
Interrupting SQL queries | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Interrupting SQL queries | ||
Keywords | Avoiding huge result sets; Interrupting SQL queries; SQL MAX ROWS |
Determining Windows platform: 3.1, Windows 95, Windows NT | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Determining Windows platform: 3.1, Windows 95, Windows NT | ||
Keywords | Dectecting Windows version; Detecting Windows 95; Detecting Windows NT; Determining Windows platform; GetVersion; GetWinFlags; Getting Win32 build number; Win32Platform |
Trapping unwanted double clicks | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Trapping unwanted double clicks | ||
Keywords | Mouse handling; Trapping double clicks; Unwanted double clicks |
Setting system date and time | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Setting system date and time | ||
Keywords | SetLocalTime; Setting system date and time |
Lost carets | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Lost input carets in edit controls | ||
Keywords | No edit control input caret; OnExit event handlers |
Controlling Internet Explorer via OLE Automation | |||
---|---|---|---|
Authors | Alistair Moffat | Type: Tip | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Controlling Internet Explorer via OLE Automation | ||
Keywords | Internet Explorer; OLE Automation; TWebBrowser |
Exceptions in QuickReport | |||
---|---|---|---|
Authors | Richard Smith | Type: Tip | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Exceptions in QuickReport | ||
Keywords | Exceptions in QuickReport |
Vertical fonts in QuickReport | |||
---|---|---|---|
Authors | Richard Smith | Type: Tip | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Vertical fonts in QuickReport | ||
Keywords | TrueType fonts; Vertical fonts QuickReport |
Assigning accelerator keys at runtime | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Assigning accelerator keys at runtime | ||
Keywords | Accelerator keys at runtime; Assigning accelerator keys; Setting accelerator keys |
Free disk space on drives over 2Gb | |||
---|---|---|---|
Authors | Peter Hyde | Type: Tip | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Free disk space on drives over 2Gb | ||
Keywords | DiskFree; DiskSpace; Drives over 2Gb; Free disk space |
Filename without extension | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 21 : May 1997 | View article | View source code |
Summary | Filename without extension | ||
Keywords | Filename without extension |
Run-time location information in Delphi 2 | |||
---|---|---|---|
Authors | Vitaly Miryanov | Type: Article | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Vitaly has some neat tricks to allow you to determine the source file and line number where an error occurred, at run time on your users' machines! | ||
Keywords | Add resource file to EXE; Binding in resources; Error addresses; Error location; Execution order; Include files {$I}; Line number at runtime; Locate errors at runtime; MAP file errors; MAP file format; Order units executed; Public symbols; RC_DATA resources; RTLI; Resource compiler; Runtime location information |
Things you can do with standard controls: the TButton | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Using the owner draw capabilities of Delphi's controls greatly adds to their flexibility and this month Brian Long shows how to implement owner draw for the humble TButton, adding colours and auto-repeat capabilities | ||
Keywords | Auto-repeating buttons; Changing component owner; Changing component parent; Colored buttons; Coloured buttons; Custom buttons; GetParent; GetWindow; GetWindowLong; Notification messages; OnDrawItem; OnMeasureItem; Owner component; Owner draw; Owner window; Parent component; Parent window; RecreateWnd; TButton; Window creation; cn_Base = $2000; cn_CtlColorBtn; wm_CtlColorBtn; wm_MeasureItem; ws_Popup window style; ws_child window style; ws_overlapped window style |
Under Construction: Delphi 3 active forms | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Bob Swart shows how to use one of the great new features in Delphi 3, making a Wizard ActiveForm and deploying it on the Web too! | ||
Keywords | Active forms; Active forms and VB4; ActiveForm Wizard; ActiveForms; ActiveForms and VB4; ActiveX, Internet Explorer; Code signing; Creating ActiveX controls; Delphi 3; Deploying ActiveForms; Deploying ActiveForms on Web; DllRegisterServer; Dynamic ActiveForms; IClassFactory; OCX; TAnimate; Under Construction |
High-Accuracy timing | |||
---|---|---|---|
Authors | Brian Frost | Type: Article | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Implementing accurate timing over short periods, or creating an accurate but brief delay, is not at all straightforward in Windows, but Brian Frost has all the answers, plus with a handy application profiling tool as well | ||
Keywords | Accurate delays; Accurate timing; Application profiling; Bios timing; Clock tick; Delay in Borland Pascal; Hardware timer; High-accuracy timing; Interrupt 2F; OpTimer from TurboPower; Profiler; Profiling with oscilloscope; Profiling with printer port; QueryPerformanceCounter; QueryPerformanceFrequency; TTimer; Timing; Virtual timer device VTD |
Beating The System: Manipulating 16-bit resources, part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 22 : June 1997 | View article | View source code |
Summary | BLast month Dave Jewell showed us how to extract resources from 16-bit executables, this month he concludes by explaining how to save them into standard icon and bitmap file formats | ||
Keywords | 16-bit resources; Beating the System; Bitmap file format; Bitmap resources; Extracting resources; GROUPICON resource; Icon file format; Icon resources; Resources in EXE and DLL; TBitmapInfoHeader; Writing bitmap files; Writing icon files |
Surviving client/server: Database design primer | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 22 : June 1997 | View article | No source code |
Summary | Everything you always wanted to know about database design principles but were afraid to ask, explained clearly and simply by Steve Troxell | ||
Keywords | Actionable information; Atomic values; Client/server design; Data normalisation; Data normalization; Database design; Declarative constraints; First normal form; No repeating groups; Null values in tables; Open/closed architecture; Relational database design; SQL; SQL DEFAULT; SQL NOT NULL; SQL domains; SQL user defined data types; Second normal form; Surviving client/server; Third normal form; Triggers; User security |
One last compile: Psst! Wanna know a secret? | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 22 : June 1997 | View article | No source code |
Summary | Psst! Wanna know a secret? | ||
Keywords | One last compile |
Review: TCompress | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 22 : June 1997 | View article | No source code |
Summary | Dave Jewell kicks the tyres on this data compression component from SPIS | ||
Keywords | Data compression; Reviews; SPIS New Zealand; TCompress |
Review: TMultLang 1.2 | |||
---|---|---|---|
Authors | Peter Hyde , Richard Smith | Type: Review | |
Issue | 22 : June 1997 | View article | No source code |
Summary | Peter Hyde and Richard Smith have both grappled with multi-lingual apps and report back on a component from Lingscape which aims to make the whole thing a breeze... | ||
Keywords | Lingscape; Multilingual applications; Multiple languages; Reviews; TMultLang |
SDI menu problems | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 22 : June 1997 | View article | View source code |
Summary | SDI menu problems | ||
Keywords | SDI applications; SDI menu problems |
Drag and drop onto TMemo | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Drag and drop onto TMemo | ||
Keywords | Drag and drop onto TMemo; Locating TMemo input caret; TMemo |
Multiple TSplitter | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Multiple TSplitter | ||
Keywords | Coordinating TSplitters; Delphi 3; Multiple TSplitter |
Minimising Delphi applications | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Minimising Delphi applications | ||
Keywords | Minimising Delphi apps; Minimizing |
Query execution speed | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Query execution speed | ||
Keywords | 16-bit and 32-bit local SQL; Infopower QBE component; QBE queries; Query execution speed; SQL queries too slow |
Unique log files | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Unique log files | ||
Keywords | Unique log files; Using TStream for a log file |
Validating TBitmap | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Validating TBitmap | ||
Keywords | Validate bitmap file; Validating TBitmap |
Closing DOS program window | |||
---|---|---|---|
Authors | Bruno Sonnino | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Closing DOS program window | ||
Keywords | Closing DOS program window; WinExec; command.com /c; sw_ShowNormal |
Design time context sensitive help | |||
---|---|---|---|
Authors | Peter Hyde | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | Design time context sensitive help | ||
Keywords | Context sensitive help; Delphi 3; Design time help |
TabbedNotebook and TabSet components | |||
---|---|---|---|
Authors | Stephen Posey | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | TabbedNotebook and TabSet components | ||
Keywords | Accessing notebook pages; Enumerated types; TTTabbedNotebook; TTabSet |
QuickReports band layout | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | QuickReports band layout | ||
Keywords | QuickReports band layout |
QuickReports multiple detail fields | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | QuickReports multiple detail fields | ||
Keywords | Multiple detail fields; QuickReports |
QuickReports sizing and placement | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 22 : June 1997 | View article | View source code |
Summary | QuickReports sizing and placement | ||
Keywords | QuickReports; Sizing and placing fields |
Converting Pascal to HTML | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Marco describes Delphi's undocumented TParser code parser class and how he used it to create some really neat tools to display all your project source in a web browser | ||
Keywords | Code parsing; Convert Pascal to HTML; Convert project to HTML; HTML; Internet; Lexical analysis; Parsing; Parsing source code; TParser; ToolServices; Wizards & experts |
Under Construction: Delphi 3 packages | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) , Chad Z Hower | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Bob Swart is joined by Chad Hower this month, together they give us the complete run-down on Delphi 3's new packages: using them for both run-time and design-time, writing and deploying them, with the benefits and pitfalls revealed, plus package collections and code signing. | ||
Keywords | $IMPLICITBUILD; $IMPORTEDDATA; $RUNONLY; CAB file compression; Code signed packages; Code signing; Compiler directives; Creating packages; DCP files; DLLs; DPK files; DPL files; Delphi 3; Deploying packages; Design time packages; Distributing packages; Install package collection; List of packages in Delphi; Package collection editor; Package collections; Package versioning; Packages; Runtime packages; Under Construction; requires |
Startup and shutdown points | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Delphi applications, units and DLLs have a variety of exit and entry points, Brian Long explains them all so you know exactly where to place your initialisation and finalisation code | ||
Keywords | $DenyPackageUnit; AddExitProc; AddTerminateProc; Application.Terminate; DLL LibMain; DLL WEP; DLL entry point; DLL exit point; DLLEntryPoint; DLLMain; DLLProc; Exit procedures; ExitProc; Form drawing completed; InitProc; Initialisation procedures; Initialization; OnCloseQuery; Package exit procedure; Packages; Program entry point; Program exit point; Shutdown; Startup; TApplication.Initialize; Unit entry point; Unit exit point; Unit initialisation; finalization; wm_Paint; wm_QueryEndSession |
One last compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 23 : July 1997 | View article | No source code |
Summary | The RAD road to Hell | ||
Keywords | One last compile... |
Surviving client/server: credit payments, part 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Steve Troxell begins examination of a client/server system case study, with insights into application and database design decisions | ||
Keywords | Auto-increment fields; Case study; Client/server; Client/server design; Credit payments; Database design; InterBase; InterBase generator; SQL; Surviving client/server |
Creating component suites: an event list | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Paul Warren gets frustrated with badly written component suites, this monthhe begins an occasional series of key tips with an event list object for easy component interaction | ||
Keywords | Component building; Component suites; Creating components; Event list component; Events; Linking components; Sharing events |
Beating the system: Adding to your Delphi toolkit | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Dave Jewell takes a rest from bleeding edge technology and presents two nifty time-savers: a delimited string class and a minimal-code history list unit | ||
Keywords | 32-bit disk access; Default properties; Delimited string class; Delimited strings; Disk serial numbers; History list; History list unit; INI files; MRU list; Multiple constructors; Parsing; Parsing delimited strings; TStrings.CommaText; Text parsing; Windows Registry; Windows for Workgroups |
Windows 95 system fonts | |||
---|---|---|---|
Authors | Steven J Colagiovanni | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Steven Colagiovanni demonstrates how to change the system fonts in your Win95 applications | ||
Keywords | Changing system fonts; Font styles; GetSysColor; GetSysFont; LOGFONT structure; SPI_GETNONCLIENTMETRICS; System font colors; System fonts; SystemParametersInfo; TLogFont; Window caption width; Windows 95 |
Express yourself | |||
---|---|---|---|
Authors | Chris McNeil | Type: Article | |
Issue | 23 : July 1997 | View article | View source code |
Summary | If you ever need to handle algebraic expressions (that's formulae to you and me!) Chris McNeil's TExpression component will get the job done easily and efficiently | ||
Keywords | Algebra; Calculations; Creating components; Equations; Expression handling; GetComponentProperties; Maths; Properties; Property editors; Sub-properties |
Message dialog buttons | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Message dialog buttons | ||
Keywords | Custom message dialogs; Message dialog buttons; MessageDlg; ShowMessage |
Critical Sections | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Critical Sections | ||
Keywords | CRITICAL_SECTION; Critical Sections; EnterCriticalSection; TRTLCriticalSection; Win32 API |
Stay on top TDBLookupComboBox in Delphi 1 | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Stay on top TDBLookupComboBox in Delphi 1 | ||
Keywords | Bring component to top; Bring window to top; Stay on top; TDBLookupComboBox; TPopUpGrid |
Using Locate with multiple fields | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Using Locate with multiple fields | ||
Keywords | Database search; Locate with multiple fields; TTable |
Acessing Win32 help file contents page | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Acessing Win32 help file contents page | ||
Keywords | Help file contents page |
Application launcher: finding running applications | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Application launcher: finding running applications | ||
Keywords | Application launcher; FindWindow; Finding running applications; Microsoft office manager; Switching to running app |
ShowWindow problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | ShowWindow problem | ||
Keywords | BringWindowToTop; FindWindow; Restore minimised program; ShowWindow |
Update: executing methods by name | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Update: executing methods by name (from Issue 21: poor man's polymorphism) | ||
Keywords | Execute methods by name |
QuickReports images and dots | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 23 : July 1997 | View article | View source code |
Summary | QuickReports images and dots | ||
Keywords | QuickReports images and dots |
QuickReports generalised report control | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 23 : July 1997 | View article | View source code |
Summary | QuickReports generalised report control | ||
Keywords | QuickReports |
Delphi 3 hints bug | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Delphi 3 hints bug | ||
Keywords | Delphi 3 hints bug |
Delphi 2 and 3 hints and warning bug | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Delphi 2 and 3 hints and warning bug | ||
Keywords | Compiler hints and warnings; Delphi 2 bug; Delphi 3 bug |
Memo line and column | |||
---|---|---|---|
Authors | Bruno Sonnino | Type: Tip | |
Issue | 23 : July 1997 | View article | View source code |
Summary | Memo line and column | ||
Keywords | TMemo line and column |
Under Construction: Delphi 3 Web Modules, Part 1 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Bob Swart begins a 2-part investigation into the new web modules included with Delphi 3's Client/Server Edition | ||
Keywords | Building internet apps; CGI and WinCGI; Delphi 3; Generating HTML; ISAPI; Internet; IntraBob CGI debugger; NSAPI; TDataSetTableProducer; TPageProducer; TWebApplication; TWebDispatcher; TWebRequest; TWebResponse; Under Construction; Web modules; Web server applications |
Things You Can Do With Standard Controls: TMenuItem | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Brian Long unravels more secrets of owner draw controls, demonstrating how to spice up your menus with glyphs | ||
Keywords | Bitmap transparency; Bitmaps on menus; Custom menu items; Glyphs on menus; ModifyMenu; Owner draw menu items; TMenuItem |
Surviving Client/Server: Credit Payments, Part 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Following on from last month's case study, Steve Troxell wraps up the project with more helpful design and implementation hints | ||
Keywords | Client/server; Credit payments case study; Grid data changes; Master-detail-detail; OnSetEditText; Surviving Client/Server |
Creating NT Services | |||
---|---|---|---|
Authors | John Chaytor | Type: Article | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Services are a powerful feature of Windows NT, but how can you write your own? John Chaytor has the answers, with example programs and Delphi classes to make it simpler | ||
Keywords | Console applications; Creating NT services; Installing NT services; Registering NT services; Service Control Manager; Windows NT |
Beating The System: Zip Files, Peeking Under The Hood | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 24 : August 1997 | View article | View source code |
Summary | The ubiquitous Zip file is everywhere nowadays and Dave Jewell shows how to delve inside and find what's there | ||
Keywords | Beating the System; Data compression; QuickSort; Sorted TList; Sorting; ZIP file contents; ZIP file format |
Implementing Class-Traps For Delphi And C++Builder | |||
---|---|---|---|
Authors | Cyril Jandia | Type: Article | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Cyril Jandia wants to be in at the birth and death of his objects so he came up with a simple technique, encapsulated in the TClassTrap class | ||
Keywords | Assembly view Delphi 2; Class traps; Free; FreeInstance; Hooking functions; Hooking object creation; Hooking object destruction; Memory protection; NewInstance; Object construction; Object destruction; PAGE_EXECUTE_READ; PAGE_READWRITE; System unit; TClass; TVmt; VMT; Virtual method table; _ClassCreate; _ClassDestroy |
One last compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 24 : August 1997 | View article | No source code |
Summary | I love my company, and my company loves me | ||
Keywords | One last compile |
Nashville BDC: A Mike's Eye View | |||
---|---|---|---|
Authors | Mike Orriss | Type: Article | |
Issue | 24 : August 1997 | View article | No source code |
Summary | Mike Orriss reports back on his experiences at Borland's annual conference, held this year in Nashville, Tennessee | ||
Keywords | BDC 1997; Borland Conference 1997; Nashville conference 1997 |
More News From Nashville | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Article | |
Issue | 24 : August 1997 | View article | No source code |
Summary | Borland used their conference to make some key announcements: here's a summary | ||
Keywords | BDC 1997; Borland conference 1997; Nashville conference 1997 |
Review: ISGMAPI | |||
---|---|---|---|
Authors | Peter Hyde | Type: Review | |
Issue | 24 : August 1997 | View article | No source code |
Summary | Your apps could have built in email and fax capabilities at the drop of a hat with this component from Infinity Software and a little help from MS Exchange, reviewed by Peter Hyde | ||
Keywords | Communications components; Email; Fax; ISGMAPI 2.0; Infinity Software Group; MAPI; MS Exchange; Reviews |
Making A 256 Colour Bitmap | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Making A 256 Colour Bitmap | ||
Keywords | Colour bitmaps; Making a 256 colour bitmap; Palettes; TBitmap; TLogPalette |
Delphi 2/3 Typed TObject Bug | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Tip | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Delphi 2/3 Typed TObject Bug | ||
Keywords | Typed TObject bug Delphi 2/3 |
Background Palette Information | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Background Palette Information | ||
Keywords | Colour bitmaps; Palettes |
MessageDlg Surprises | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 24 : August 1997 | View article | View source code |
Summary | MessageDlg Surprises | ||
Keywords | MessageDlg buttons |
Localised Database Headaches | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Localised Database Headaches | ||
Keywords | BCD fields; BDE; ENABLE BCD in BDE; Personal Oracle 7.3 |
Iconic Applications | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Iconic Applications | ||
Keywords | Iconic applications; Non client area; Start app as icon; Start app minimised; TApplication; WindowState; wm_NCCreate; wm_QueryOpen; wsMinimized |
Modifying Form Files | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Modifying Form Files | ||
Keywords | DFM files; Modifying form files |
BDE Version Incompatibilities | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 24 : August 1997 | View article | View source code |
Summary | BDE Version Incompatibilities | ||
Keywords | BDE Version Incompatibilitie; BDE versions 3 and 4; Delphi 3; Multiple primary indexes; Table creation |
More Delimiter Tools | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 24 : August 1997 | View article | View source code |
Summary | More Delimiter Tools | ||
Keywords | Comma delimited strings; Storing user settings; Storing window position; Storing window size |
Just The Extension Please | |||
---|---|---|---|
Authors | Pete Frizzell | Type: Tip | |
Issue | 24 : August 1997 | View article | View source code |
Summary | Just The Extension Please | ||
Keywords | Just file extension |
Surviving Client/Server: Custom Dataset Components, 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Delphi 3 now makes it much easier to interface to databases without using the BDE and this month Steve Troxell begins a series demonstrating how to do just this by creating your own dataset components | ||
Keywords | BDE; BDE replacements; Bookmarks; Borland Database Engine; Client/server; Custom dataset components; Delphi 3; Interfacing to databases; Replacing the BDE; Surviving client/server; TBDEDataSet; TDataSet |
Who Said It's Hip To Be Square? | |||
---|---|---|---|
Authors | Steven J Colagiovanni | Type: Article | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Tired of those boring old rectangular windows in your app? Well Steven Colagiovanni is here to show you how to spice things up with windows any shape you like! | ||
Keywords | CombineRgn; CreateEllipticRgn; CreatePolygonRgn; Creating window regions; Custom window shapes; Custom window titlebar; Non-rectangular windows; SetWindowRegion; SetWindowRgn; Win32; Win32 drawing functions; Windows with holes in |
Web Commerce With Delphi | |||
---|---|---|---|
Authors | Peter Hyde | Type: Article | |
Issue | 25 : September 1997 | View article | View source code |
Summary | As the web gets more and more popular, so companies are more interested in using it to sell their wares but how can you build the secure web apps needed? Peter Hyde discusses the issues and pitfalls and demonstrates a simple online sales application created using the WebHub application framework | ||
Keywords | CGI applications; Credit card validation; ECommerce; HTML; Internet; Online sales; SSL; Secure server; Secure web transactions; Web applications; Web browser security; Web commerce programs; WebHub; World wide web |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 25 : September 1997 | View article | No source code |
Summary | Mr Angry Writes | ||
Keywords | One Last Compile... |
Beating The System: Now Where Did I Put That File? | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Dave Jewell creates a general purpose file finding utility class, which can even look inside ZIP files, ready to plug into your own applications | ||
Keywords | Beating the system; Deleting a file tree; Detecting available drives; Detecting drive type; File finder utility; FindFirst; FindNext; Long file names; Regular expression handler; Searching for files; Searching inside zip files; Wildcard file matching |
Under Construction: Delphi 3 Web Modules, Part 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Continuing on from last month, Bob Swart shows how to write dynamic queries, save state information and even eat some cookies along the way... | ||
Keywords | CGI applications; Cookies; Delphi 3; Dynamic queries in web apps; HTML forms; Hidden HTML form fields; Internet; NSAPI and ISAPI; Saving state; TPageProducer; TQueryTableProducer; TWebDispatcher; Under Construction; Web applications; Web modules; World wide web |
Speeding Up Client/Server | |||
---|---|---|---|
Authors | David Selwood | Type: Article | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Mission-critical client/server apps need to run fast and David Selwood has lots of tips to help you ensure your programs will make the grade, including BDE setup, transaction control, SQL tuning and making the most of your chosen database server | ||
Keywords | BDE; BDE configuration; Cached updates; Client/server; Data modules; ENABLE SCHEMA CACHE; Index design; Locate method; Multi-threading; Optimisation; Performance enhancement; SQL passthrough; SQL searching; SQLPASSTHRO MODE; SQLQRYMODE; Server tuning; Stored queries; Synchronize; Transaction control |
GUID Generation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | GUID Generation | ||
Keywords | Creating a GUID; GUID Generation; Globally unique identifier |
ReportSmith and the TReport mystery | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | ReportSmith and the TReport mystery | ||
Keywords | ReportSmith; TReport and Delphi 3 |
Static class data | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Static class data | ||
Keywords | C++ static keyword; Class methods; ClassName; Static class data |
WideString | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | WideString | ||
Keywords | Unicode; WideString; WideString and Caption; WideString and Text |
Win32s | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Win32s not supported in Delphi | ||
Keywords | Win32s not supported Delphi |
Command line compiler | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Command line compiler | ||
Keywords | Command line compiler |
Accessing components by name | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Accessing components by name | ||
Keywords | Accessing components by name; FindComponent |
Pixel colours changing | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Pixel colours changing | ||
Keywords | Bitmap transparency; Pixel colours changing; TBitmap; TransparentColor |
Copying string lists to the clipboard | |||
---|---|---|---|
Authors | Warren Kovach | Type: Tip | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Copying string lists to the clipboard | ||
Keywords | Clipboard; Copying string lists to the; TStringList |
Exposing field name | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Exposing field name | ||
Keywords | Exposing field name; Getting field name |
Large string lists | |||
---|---|---|---|
Authors | Reinhard Greeven | Type: Tip | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Large string lists | ||
Keywords | Creating TStringList; Increasing TStringList size; Large string lists; Setting TStringList size; TStringList |
Upgrading data between program versions | |||
---|---|---|---|
Authors | Stefan Boether | Type: Tip | |
Issue | 25 : September 1997 | View article | View source code |
Summary | Upgrading data between program versions | ||
Keywords | Program and data versions; Upgrading data utility unit |
Trapping Keystrokes | |||
---|---|---|---|
Authors | Warren Kovach | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Warren Kovach demonstrates how to trap system-wide keystrokes by hooking into the Windows API, with a nifty Tray icon application to make entering accented and extended characters so easy as his example | ||
Keywords | Accented characters; Broadcasting messages; CallNextHookEx; Compose key; Computer based training hook; Delphi shared memory manager; Examining messages; Extended characters; Foreign language characters; HWND_BROADCAST; Hooking Windows events; Hooking mouse events; KeyPreview; Keystroke handling; Message record/playback; Multiple instances of DLLs; OnKey... events; RegisterWindowMessage; SetWindowsHookEx; ShareMem unit; Trapping keystrokes; Tray icon applications; Types of Windows hook; UnhookWindowsEx; User defined messages; Virtual key codes; WH_JOURNALPLAYBACK; WH_JOURNALRECORD; WH_KEYBOARD hook; WM_TranslateKeys; Windows API; Windows hooks; Windows memory mapped files; Windows messages |
Surviving Client/Server: Custom Dataset Components, 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Following on from last month's introduction, Steve Troxell concludes his discussion of database access without the BDE, covering null, date/time, calculated and lookup fields | ||
Keywords | Calculated fields; Client/server; Custom TDataSet; Custom dataset components; Data-aware components; Database access; Defining fields; Non-BDE database access; Null values; Simple data dictionary; Surviving Client/Server; TDataSet; TField component; TFieldDef |
Under Construction: Homepage Hit Counter | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Who's been coming to call? Bob Swart shows how to construct various types of hit counter for your website so you can discover exactly how popular you are! | ||
Keywords | CGI applications; GIF file format; HTML; IP address of surfer; Internet applications; JPEG files; MIME headers; TJPEGImage; Under Construction; Website hit counter; Website log files; World wide web |
Things You Can Do With Standard Controls: TPageControl | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Brian Long delves further into the mechanics of owner-draw controls, this month showing how to jazz up your notebooks by placing the tabs anywhere you want, replace them with buttons, or even use images along with the text descriptions of each tab | ||
Keywords | 32bit common controls; Custom notebook controls; Custom page controls; Owner drawn controls; Page control with bitmaps; TPageControl; TTabControl |
Extending Web Solution Builder | |||
---|---|---|---|
Authors | Chad Z Hower | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Web Solution Builder (previously known as Portcullis/IAG) is a neat way to create web applications in Delphi, but you can also extend it, as its lead developer Chad Hower shows us, with custom HTML writers, placeholders to add non-Delphi HTML features and even customise Delphi existing components | ||
Keywords | Drawbridge API; Internet applications; Portcullis; Shoreline Software; Web applications; Web solution builder; World wide web |
Beating The System: Runtime Library Determination Utility | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Imagine a customer calling up to complain you forgot to include a vital DLL in the distribution package! Dave Jewell can help you avoid such embarrassment with his utility to find just what DLLs and Delphi packages your new masterpiece needs | ||
Keywords | Beating the System; Checking DLL usage; DLL import data; EXE file format; RVA; Relative virtual address; TDump; Which DLLs are required?; Which packages are required? |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 26 : October 1997 | View article | No source code |
Summary | Interface issues: would you like to call an ambulance? ...and what's that bright green alien trying to say? | ||
Keywords | One last compile... |
DirectX 3D In Delphi | |||
---|---|---|---|
Authors | Andrew Kern , Noel Rice | Type: Article | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Andrew Kern and Noel Rice demonstrate how to exploit Microsoft's DirectX 3D graphics library in your own Delphi applications, with a bare-bones example to get you started | ||
Keywords | Direct3D graphics; DirectX 3D graphics; Retained mode |
Data Aware Control Request | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Data Aware Control Request | ||
Keywords | Data aware components; Data aware controls; Data aware date picker; Date/time picker; TDateTimePicker; TFieldDataLink |
Clipboard | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Clipboard | ||
Keywords | Clipboard formats; Components on clipboard; Custom clipboard format; Multiple clipboard formats; TClipBoard |
IDAPI32.CFG | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | IDAPI32.CFG | ||
Keywords | BDE; Borland Database Engine; Disappearing aliases; IDAPI32.CFG |
Changing The Month | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Changing The Month | ||
Keywords | Changing month; Date arithmetic; Number of days in month; TDateTime |
Plugging In A Class | |||
---|---|---|---|
Authors | Jonas W Nordlof | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Plugging In A Class | ||
Keywords | Making VCL changes; Modifying compiled component; VCL changes without source |
Notebook Menu Merging | |||
---|---|---|---|
Authors | Paul Warren | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Notebook Menu Merging | ||
Keywords | Menus and notebooks; Notebook menu merging; TMainMenu |
Version Information | |||
---|---|---|---|
Authors | Octavio "Dave" Hernandez | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Version Information | ||
Keywords | RT_VERSION resource; Reading version information; TVSVersionFileInfo; VerQueryValue; Version information; VersionInfo resource |
Starting Projects Via DPR | |||
---|---|---|---|
Authors | Mark Erbaugh | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Starting Projects Via DPR | ||
Keywords | Starting projects via DPR |
Code Completion | |||
---|---|---|---|
Authors | Stephane Groberty | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Code Completion | ||
Keywords | Code completion; Form components |
Navigation With Cursor Keys | |||
---|---|---|---|
Authors | Octavio "Dave" Hernandez | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Navigation With Cursor Keys | ||
Keywords | Form KeyPreview property; Keybd_Event; Navigation with cursor keys; Synthesising keystrokes |
Update: More Delimiter Tools, Issue 24 | |||
---|---|---|---|
Authors | Brandon Smith | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Update: More Delimiter Tools, Issue 24 | ||
Keywords | Delimited text; Parsing words; Update: more delimiter tools |
Update: Just The Extension Please | |||
---|---|---|---|
Authors | Thale Hadderingh | Type: Tip | |
Issue | 26 : October 1997 | View article | View source code |
Summary | Update: Just The Extension Please | ||
Keywords | ExtractFileName; Just file extension; Modify file extension |
Delusions Of Grandeur | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Julian Bucknall knows that it's a big wide multilingual world out there and has come up with some clever techniques to ensure that text strings which include all those funny accented, extended and ligature characters always sort correctly | ||
Keywords | ANSII; Accented characters; AnsiCompareStr; Character encoding; Character sets; Collation order; CompareStr; CompareString; Comparing strings; DOS Code page; Extended characters; High-ascii characters; Indexing; Ligatures; OEM character set; Sorting; Windows character set; country.sys; display.sys |
Surviving Client/Server: Data Mining With TDecisionCube | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 27 : November 1997 | View article | No source code |
Summary | The Client/Server Edition of Delphi 3 includes a new suite of components which make presenting complex data a simple task; Steve Troxell shows how to use them to best effect so that your users can go on their very own mining expeditions... | ||
Keywords | Client/server; Crosstabulation; Data analysis; Data mining; Decision cubes; Decision support; Delphi 3; SQL; Surviving Client/Server; TDecisionCube; TDecisionGraph; TDecisionGrid; TDecisionPivot; TDecisionSource |
Under Construction: TBrokenLink Component | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Now you know who's visiting your website (see last month's column), it's time to find and fix up all those broken links! Bob Swart creates a component to find both local and internet-wide broken links, plus there's a copy of his InterBob link checker on the disk too! | ||
Keywords | Broken website links; Callbacks; File finding; FindFirst; HTML; HTML links; HTTP protocol; Internet; InternetCloseHandle; InternetConnect; InternetOpen; Local and remote link checks; Parsing HTML files; Under Construction; WININET.DLL; Web apps; Windows internet functions; World wide web |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 27 : November 1997 | View article | No source code |
Summary | How often do you do it? | ||
Keywords | One last compile |
Delphi 3 Add-In Packages: Digging The Dirt On Archaeopteryx | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Brian Long's curiosity got the better of him when he checked out a couple of the new Delphi 3 IDE add-ins: he figured out how the magic was done and created his very own add-in, called Archaeopteryx; even better, now he's sharing the secrets he discovered with us all | ||
Keywords | Application object; Archaeopteryx; Chained event handlers; Customising Delphi 3; Delphi 3 IDE enhancement; Delphi 3 add-ins; Event chaining; Fake onclick events; FindComponent; Flat buttons; Merlin; Multiline component palette; NT memory leak; Packages; Raptor; Shortcut; T-Rex; TextToShortcut bug; Window styles; Windows NT |
Beating The System: EXE Sniffing, The Story Continues... | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 27 : November 1997 | View article | View source code |
Summary | No, Dave Jewell hasn't found some crazy new way to get high, but this month he's delving inside your Delphi executables to determine just what units and packages are compiled into them | ||
Keywords | $WEAKPACKAGEUNIT; Beating the system; Delphi 3; EXE file format; Finding units in EXE files; GetPackageInfo; LoadLibrary; Merlin; PACKAGEINFO resource; Streams; TResourceStream; UpdateResource; Which packages used; Which units used |
Who Am I? | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Article | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Xavier Pacheco shows how to use version information in your Delphi 3 projects: adding it and retrieving it, with a handy TVerInfoRes class to make it all even simpler | ||
Keywords | Delphi 3; Executable version; GetFileVersionInfo; GetFileVersionInfoSize; Getting version information; VerQueryValue; Version information |
Controls Demystified | |||
---|---|---|---|
Authors | Glenn Lawrence | Type: Article | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Controls, components: which is which and why does it matter? Glenn Lawrence has the answers and some very helpful hints to improve your applications | ||
Keywords | Class hierarchy; Control tree; Controls and components; Disabled controls; Enabled property; FindDragTarget; Finding controls; Graphic controls; Mouse over control; Non-visual components; Parent and child controls; Sibling controls; TComponent; TControl; TGraphicControl; TWinControl; Visual components; WindowFromPoint; Windowed controls; Wrapper controls |
UNC | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | UNC | ||
Keywords | TDirectoryListBox; TFileListBox; UNC drive names |
Unexpected Disk Space | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Unexpected Disk Space | ||
Keywords | DiskFree and NT 4; Drives over 3Gb |
Calling Into DLLs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Calling Into DLLs | ||
Keywords | Calling into DLLs; DLL calls |
Context Help | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Context Help | ||
Keywords | BorderIcons; Context Help; Context sensitive Help; Window border buttons |
Table Names | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Table Names | ||
Keywords | Getting Access table names; TSession |
Forms Compiled Into Exes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Forms Compiled Into Exes | ||
Keywords | Extracting forms from EXEs; ObjectResourceToText; convert.exe |
DLL Imports | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 27 : November 1997 | View article | View source code |
Summary | DLL Imports | ||
Keywords | DLL import table garbled; QuickView |
Win32 API error codes | |||
---|---|---|---|
Authors | Andy McFarlane | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Win32 API error codes | ||
Keywords | FormatMessage; GetLastError; Win32 API error codes |
Two 'Gotchas' | |||
---|---|---|---|
Authors | Mat Newman | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Two 'Gotchas' | ||
Keywords | EnumChildWindows callback; SetParent |
Update: Starting Projects Via DPR | |||
---|---|---|---|
Authors | Russ Garner | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Update: Starting Projects Via DPR | ||
Keywords | Loading projects in Explorer |
Update: Navigation With Cursor Keys (Issue 26) | |||
---|---|---|---|
Authors | Lucas Franzen | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Update: Navigation With Cursor Keys (Issue 26) | ||
Keywords | Navigation with cursor keys |
Const Parameters | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Const Parameters | ||
Keywords | Const parameters; Passing Interfaces |
Colours Property Editor | |||
---|---|---|---|
Authors | Mike Scott | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | Colours Property Editor | ||
Keywords | Color property editor; Colour property editor |
FilteredComponent Property Editor | |||
---|---|---|---|
Authors | Mike Scott | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | FilteredComponent Property Editor | ||
Keywords | Component property editor; Property editors |
DbiDoRestructure Wrapper | |||
---|---|---|---|
Authors | Roberto De Marini | Type: Tip | |
Issue | 27 : November 1997 | View article | View source code |
Summary | DbiDoRestructure Wrapper | ||
Keywords | DbiDoRestructure wrapper; Rebuilding indexes; Restructuring tables |
Subclassing | |||
---|---|---|---|
Authors | Brandon Smith | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Brandon Smith explains how Windows API subclassing can improve your applications and provides some useful hints and techniques | ||
Keywords | Component parent and child; CreateParams; EN_CHANGE; Enhanced memo component; Event handling; GetProp; MakeObjectInstance; SetProp; Subclassing; TMemo; TWinControl; TurnOnSubclassing; WNDCLASS structure; WNDPROC; Window classes; Window procedure; WindowProc; Windows API; Windows message handling; Windows messages |
Surviving Client/Server: Phonetic Matching | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Matching the right information data to the right database record can be tricky, but Steve Troxell has the solutions: Soundex and Metaphone phonetic matching, all ready to roll | ||
Keywords | Client/server; Metaphone; Phonetic matching; SQL; Soundex; Surviving client/server; Text matching |
TDataSet Update from Issues 25 and 26 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | TDataSet Update from Issues 25 and 26 | ||
Keywords | Custom TDataSet; Surviving client/server |
Surviving SQL: Phonetic matching | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Steve Troxell brings us the first of his occasional SQL hints and tips column, this month's edition is an SQL implementation of Soundex | ||
Keywords | Client/server; SQL; SQL Server; Soundex; Stored procedures; Surviving SQL |
Under Construction: Assertions | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Delphi 3 introduced assertions and Bob Swart explains how to use them to best effect in error handling, along with implementations for earlier Delphi versions too | ||
Keywords | $ASSERTIONS ON; $C+ compiler directive; Assert in Delphi 1 and 2; Assert in Delphi 3; Assertions; Assertions and exceptions; Debug version; Error handling; Error location; Source code line; Under construction |
Delphi Meets COM: Part 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 28 : December 1997 | View article | No source code |
Summary | COM (or Component Object Model) programming is becoming increasingly important in Windows and Dave Jewell starts this series by explaining the foundations of it all and just why it's something we all need to know about | ||
Keywords | ActiveX; CLSID; COM programming; Component Object Model; Creating a GUID; DDE; Dynamic data exchange; GUIDs; Globally unique identifiers; IUnknown; Interface inheritance; Interfaces; Microsoft GUIDGEN; OCX; OLE; Object linking and embedding; QueryInterface; VBX controls |
Get On The Web With Delphi 3 | |||
---|---|---|---|
Authors | John O'Connell | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | In a two-part series, John O'Connell aims to explain (nearly) everything you need to know about writing web applications but didn't know you needed to ask | ||
Keywords | CGI; Console applications; Delphi 3; Delphi 3 web components; GET and POST request methods; HTML; HTML forms; HTTP; HTTP status codes; ISAPI and NSAPI; Internet; MIME; TCGIApplication; TWebActionItem; URL encoding; Web applications; Web server; Web server APIs; WebDispatcher; WebModule; WebRequest; WebResponse; WinCGI; World wide web |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 28 : December 1997 | View article | No source code |
Summary | Dear Santa | ||
Keywords | One Last Compile... |
Beating The System: Using OpenGL In Delphi Apps | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Dave Jewell shows how to produce high-quality photo-realistic 3D graphics using Microsoft's implementation of OpenGL, and compares OpenGL with DirectX | ||
Keywords | 3D graphics; Beating The System; DirectX 3D graphics; GLAUX OpenGL library; GLU32.DLL; OPENGL32.DLL; OpenGL graphics programming; Photo-realistic rendering |
Update to Issue 27 Beating the System | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 28 : December 1997 | View article | No source code |
Summary | Update to Issue 27 Beating the System | ||
Keywords | Beating the System; Finding units in EXE files; Issue 27 update; Units compiled in EXE |
TPageControl.OnChanging | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | TPageControl.OnChanging | ||
Keywords | Next page; Obtain page to be changed to; TPageControl.OnChanging |
Removing components in Delphi 3 | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Removing components in Delphi 3 | ||
Keywords | Deleting components; Hiding components; Removing components Delphi 3 |
Version information build number | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Version information build number | ||
Keywords | Build number; Version information |
Custom message dialog caption | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Custom message dialog caption | ||
Keywords | CreateMessageDlg; Message dialog caption; MessageDlg caption |
SQL Server blob size | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | SQL Server blob size | ||
Keywords | BLOB SIZE in BDE; BLOB fields; BLOBs larger than 32Kb; SQL Server blob size |
Changing paradox table language | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Changing paradox table language | ||
Keywords | Change table language; Paradox table language; Table restructuring; dbiDoRestructure |
Check if EXE is running | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Check if EXE is running | ||
Keywords | Check if EXE is running; CreateProcess; Process handles; WaitForSingleObject |
Opening projects | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Opening projects | ||
Keywords | Delphi desktop file; Delphi project files; Opening projects |
Undo in Edit controls | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Undo in Edit controls | ||
Keywords | TEdit undo; Undo handler; Undo in Edit controls; Undo programmatic changes |
Interfaced classes | |||
---|---|---|---|
Authors | Mike Scott | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Interfaced classes | ||
Keywords | COM and DCOM; Custom interface classes; Interfaced classes |
Limiting a form's width and height | |||
---|---|---|---|
Authors | Xavier Pacheco | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Limiting a form's width and height | ||
Keywords | Form width and height; Limiting form width & height; WM_GETMINMAXINFO |
String matching | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | String matching | ||
Keywords | Masked string matching; MatchesMask; String matching; TMask class in Delphi 3 |
DBGrid current cell position | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | DBGrid current cell position | ||
Keywords | Cell coordinates; DBGrid current cell position; DrawDataCell; TDBGrid |
Horizontal scrolls for ListBox | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Horizontal scrolls for ListBox | ||
Keywords | Horizontal scrollbars; Scrollbars on ListBox; TListBox |
Find oldest and newest files | |||
---|---|---|---|
Authors | Tom Corcoran | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Find oldest and newest files | ||
Keywords | Find oldest and newest files; Unique filename |
Painting on a GroupBox | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Painting on a GroupBox | ||
Keywords | CopyRect; GroupBox canvas; Painting on a GroupBox |
Radio group and ActiveControl | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Radio group and ActiveControl | ||
Keywords | ActiveControl; HelpContext radio group; Make radio group active |
Insert and overtype mode for DBEdit | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Insert and overtype mode for DBEdit | ||
Keywords | Custom DBEdit control; DBEdit; Insert and overtype toggle |
Cursor key navigation | |||
---|---|---|---|
Authors | Gurbhajan Singh Bagh | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Cursor key navigation | ||
Keywords | Cursor key navigation; SelectNext |
Fields editor at runtime | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Fields editor at runtime | ||
Keywords | Fields editor at runtime |
Getting buttons to push themselves | |||
---|---|---|---|
Authors | Mike Orriss | Type: Tip | |
Issue | 28 : December 1997 | View article | View source code |
Summary | Getting buttons to push themselves | ||
Keywords | Buttons push themselves; TButton to press itself |
Beating The System: Exploring Delphi's Closed-Tools API | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Delphi IDE integration for rocket scientists? Dave Jewell has been tinkering in Delphi's innards again and this month shows us how to get to the bits of the Delphi IDE that Borland didn't want to tell you about, spilling the beans on the LibIntf unit and what it can do for you. If you have some neat ideas for Delphi IDE wizards or experts, then this is article is for you! | ||
Keywords | Beating the System; COMPLIB.DCL contents; Component palette; Component palette icons; Current time in Delphi IDE; DOS date/time format; Delphi IDE add-ins; Delphi IDE customisation; Delphi IDE dialogs; Delphi IDE internals; Delphi base registry key; Delphi main window handle; Delphi path & exe name; DelphiIDE variable; Experts; Form designer; Form designer options; GetAppHandle; GetBaseRegKey; GetBaseRegistryKey; GetCurTime; GetPathAndBaseExeName; LibHelp unit; LibIntf unit; LibMain unit; LockState; Locking controls in designer; Open Tools API; Proxies unit; Size location Delphi window; TIDelphiIDE; TILibAppBuilder; TILibrary; TInterface; TLHelp32 unit; ToolServices; VCL30 package has LibIntf |
Here Comes The Flood | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Julian Bucknall got fed up with TFileStream being slow with lots of small data chunks so he set to and wrote a replacement go-faster version with efficient buffering | ||
Keywords | Buffered file stream; Code profiling; File buffers; File handling; Performance enhancement; Streaming; TFileStream; THandleStream; TStream |
Under Construction: Website Indexing, Part 1 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 29 : January 1998 | View article | View source code |
Summary | to do exactly that in Delphi. Even if you aren't into website building, the techniques are really useful for non-web applications too! Would you like to include a search facility on your website? Bob Swart begins a 2-part series describing how | ||
Keywords | Binary tree; CGI applications; CGI support unit; Internet; Keywords; Local search engine; Reading binary tree; Storing binary tree on disk; Text indexing; Text searching; Under Construction; Web applications; Website indexing; Website search engine; World wide web; Writing binary tree to file |
Surviving Client/Server: Indexing Freeform Text | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Ok, so you have loads of information in your databases and some snazz client/server apps to work with it, but then some troublesome user comes along and wants a free text search capability... Steve Troxell comes to the rescue in this month's column, showing how to do what you wouldn't believe is possible in SQL! | ||
Keywords | AND OR NOT NEAR searches; Client/server; Creating a text index; Indexing memo fields; Indexing text in SQL; Keywords; Phrase matching; SQL; Scanning memo fields; Searching for phrases; Searching memo fields; Surviving client/server |
Get On The Web With Delphi 3 | |||
---|---|---|---|
Authors | John O'Connell | Type: Article | |
Issue | 29 : January 1998 | View article | View source code |
Summary | John O'Connell presents the concluding part of his discussion of "everything you need to know about writing web applications with Delphi 3 (but didn't know you needed to ask)" | ||
Keywords | ActiveX security problems; BDE in ISAPI applications; Bugs in CGI Delphi classes; CGI; Client-side form validation; Configuring NSAPI; Configuring webservers; Cookies; Debugging web applications; Delphi 3; Generating HTML; HTTPAPP unit; Hidden form fields; ISAPI; Internet; Internet applications; Local webservers; NSAPI; Netscape FastTrack 2.0; O'Reilly Website Server 1.1; Saving state in web apps; Set-Cookie; TISAPIApplication; TPageProducer; TWebRequest; TWebResponse; URL encoding and decoding; URL redirection; Updating ISAPI DLLs; Validating HTML forms; Validation with Javascript; Validation with VBScript; Web applications; WebDispatcher; WebModule; Webserver software; Webserver status codes; World wide web |
Delphi Meets COM: Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 29 : January 1998 | View article | No source code |
Summary | Dave Jewell has the second part of his Editor's guide (read "idiot's guide"!) to writing COM applications in Delphi, laying some more flesh on last month's introductory bones | ||
Keywords | CLSID; COM aggregation; COM programming; Class factory; CoCreateInstance; Context menu handler; GUIDs; IContextMenu; IIDs; IMalloc; IShellExtInit; IUnknown interface; Internals of COM calls; QueryInterface; REFIIDs; TComObject; Windows Explorer |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 29 : January 1998 | View article | No source code |
Summary | Delphi and the art of hard disk maintenance | ||
Keywords | One last compile... |
MS SQL Server Connections | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | MS SQL Server Connections | ||
Keywords | Connecting to SQL Server; KeepConnected; SQL Server cursors |
Nicely Formatted Numbers | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Nicely Formatted Numbers | ||
Keywords | Converting float to string; Converting integer to float; FloatToStrF; Format (text); FormatFloat; Number formatting |
Failed Typecast | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Failed Typecast | ||
Keywords | Casting single to longint; Delphi 3; Typecasting |
Destructor Query | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Destructor Query | ||
Keywords | Destroy or Free; Destroying objects |
SLIB Directory | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | SLIB Directory | ||
Keywords | SLIB directory; Stack frames |
Form Creation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Form Creation | ||
Keywords | CreateNew; Creating forms at runtime; Form constructor not found; Form creation; Resource TForm not found |
Microsoft Web Browser ActiveX | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 29 : January 1998 | View article | View source code |
Summary | Microsoft Web Browser ActiveX | ||
Keywords | ActiveX wrappers; Installing ActiveX; MS Web Browser ActiveX; TWebBrowser |
Writing A Cross Reference Tool | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Marco Cant∙ describes a clever utility which cross-references the variables, functions, procedures and more from all your source code files, then presents the results as HTML files; he also shows how the same techniques can be used to publish databases on the web | ||
Keywords | Converting database to HTML; Database cross-referencing; File handling; Generating HTML; Generating HTML for database; HTML; Optimisation; Parser; Parsing source code files; Performance enhancement; Publishing database as HTML; Scanning files; Searching for files; Sorting and searching; Source code cross reference; Source code indexing; Streams; TFileStream; Translate Pascal to HTML |
Ballet Mechanique | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | How can you find items in a list really quickly? Julian Bucknall knows how to get your data dancing to the right tune and this month begins his explanation of hash tables | ||
Keywords | Algorithms; Binary search; Collision resolution; ELF hash; Hash collisions; Hash functions; Hash tables; Hashing; Linear probing; Normal distribution; Optimisation; Performance enhancement; Poisson distribution; Search algorithms; Searching and indexing; TStringList limitations |
Under Construction: Website Indexing, Part 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Want to add a search engine to your website? Bob Swart has all the code you need: building on last month's instalment, he adds support for AND, NOT and OR keywords in queries and plugs in some performance boosts too! | ||
Keywords | Binary trees; CGI; HTML meta tags; Hash tables; Hashing; Internet; Internet applications; Local search engine; Optimisation; Performance enhancement; Searching with AND OR NOT; Text searching; Under Construction; Web applications; Website indexing; Website search engine; World wide web |
Delphi Meets COM: Part 3 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | This month Dave Jewell has some real COM projects for you to get to grips with, including working with Shell context menus and a nifty fix to stop multiple copies of Delphi being opened from Explorer | ||
Keywords | .REG files; CLSIDFromProgID; COM programming; COMOBJ unit; Context menu; Context menu registration; CreateOLEObject; Creating GUIDs; Drag and drop; GUIDs and CLSIDs; MS Word Basic; Microsoft Word; OLE Automation; PROGID; ProgIDToClassID; Registry; Source viewer; TContextMenu; Viewing files in Explorer; WM_DROPFILES; Windows API; Windows Explorer; Word.Basic registry key |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 30 : February 1998 | View article | No source code |
Summary | Wake up and smell the coffee | ||
Keywords | One last compile... |
Fatal Startup Error | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Brian Long looks in detail at why deleting declarations of 'decorative' objects from your source files causes problems, with insights in to Delphi's handling of forms, RTTI and more | ||
Keywords | Class not found error; Delphi form internals; Fatal startup error; Field class table; Field table; Form creation; Form files; Global class list; InsertComponent; Method table; RTTI; ReadComponentRes; RegisterClass; Registering a class; Removing code from forms; Run time type information; Smart linking; Streams; TObject.FieldAddress; TObject.MethodAddress; TObject.MethodName; TReader; Unwanted declarations; Virtual constructors |
Beating The System: Exploring Delphi's Closed-Tools API, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Dave Jewell continues his detailed examination of Delphi's hidden LibIntf unit, putting the Delphi IDE on auto-pilot with the TILibrary class | ||
Keywords | Beating the System; Control locking; CurrentGroup; Delphi 3 IDE; Design time packages; Experts; Find selected component; GetActiveForm; GetComponentBitmap; GetFirstSelectionType; GetOleCtrlHelp; GetProperties; GetSelection; GetSelectionName; GetSelectionType; HideWindows; IDE add-ins; IsTopMostForm; LibIntf unit; LockState; Open Tools API; Packages; Registering experts; ShowWindows; TComponentList; TIComponentInterface; TIDelphiIDE; TIFormInterface; TILibrary; Un-registering experts |
The Ultimate TDataLink? | |||
---|---|---|---|
Authors | Joanna Carter | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Joanna Carter checks out the best way for data-aware component writers to link data to controls | ||
Keywords | Component building; Creating components; Data-aware controls; Is datasource valid?; TDataLink; TDataSource; TFieldDataLink; TGridDataLink |
Loading Arbitrary Forms | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Loading Arbitrary Forms | ||
Keywords | Form resources; LoadPackage; Loading arbitrary forms; Reading form files; UnloadPackage |
Design-Time Packages | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Design-Time Packages | ||
Keywords | Design-Time Packages; Packages |
Alias Property Editor | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Alias Property Editor | ||
Keywords | Alias Property Editor; GetDatabaseNames; Listing database aliases; Writing property editors |
Index Combobox | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Index Combobox | ||
Keywords | GetIndexNames; Index Combobox; IndexFieldNames; Listing availale indexes |
IndexFieldNames Exception | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | IndexFieldNames Exception | ||
Keywords | Descending index; GetIndexForFields; IndexFieldNames; IndexFieldNames Exception; IndexName |
Pictures In Databases | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Pictures In Databases | ||
Keywords | LoadFromFile; Pictures In Databases; Storing bitmaps in tables |
Errata | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 30 : February 1998 | View article | View source code |
Summary | Errata | ||
Keywords | Clinic issue 27 error; Resource explorer |
Mike's Corner | |||
---|---|---|---|
Authors | Mike Orriss | Type: Article | |
Issue | 30 : February 1998 | View article | View source code |
Summary | The first instalment of Mike Orriss' new column. Indexed properties, clean screen updates and a difference engine. | ||
Keywords | Clean screen updates; File differences; File patching; Indexed properties; LockWindowUpdate; Mike's Corner; Parameterised properties; Screen flicker; TLockWindow; TreeView controls; Updating TreeView |
Surviving Client/Server: Three- Tier Applications With MIDAS | |||
---|---|---|---|
Authors | Steve Troxell , Scott Samet | Type: Article | |
Issue | 31 : March 1998 | View article | No source code |
Summary | Steve Troxell and colleague Scott Samet explain what tiers are all about, why they are important, and show how to write multi-tier applications with TClientDataSet, TProvider, and the related new components from Delphi 3 | ||
Keywords | Automatic load balancing; Borland Database Engine, BDE; Briefcase applications; Business rules; COM, DCOM; Client/server; Data caching; Distributed COM; MIDAS; Middleware; Multi-tier architecture; OLE Automation; Object brokers; OnReconcileError; Remote Data Module; Remote Dataset; Server class instancing; Surviving client/server; TCP/IP; TClientDataset; TDataModule; TProvider; TRemoteServer; Three-tier applications; Two-tier applications; Type library editor |
Web Commerce With Delphi: Live Transaction Processing | |||
---|---|---|---|
Authors | Peter Hyde | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Peter Hyde returns to Web Commerce, describing the options available for implementing live credit card transaction processing, complete with ready to run sample code | ||
Keywords | Banking terms; Cybercash; E-Commerce; ICVerify; Internet applications; Live transaction processing; META REFRESH HTML tag; Online transactions; Transaction queuing; Validating credit cards; Web applications; Web commerce; World wide web |
Hang Onto Yourself | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Julian Bucknall concludes his 2-parter exploration of hash tables and how to use them in your Delphi applications to make finding text strings in long lists really quick, plus there's a natty hash-index record manager ready to plug right into your programs! | ||
Keywords | Collision resolution; Dynamic hash tables; Extensible hashing; Hash indexed record manager; Hash table limitations; Hash tables; Hash tables on disk; Hashing; Linear hashing; Linear probing; Record buckets |
Beating The System: Exploring Delphi's Closed-Tools API, 3 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Dave Jewell concludes his examination of Delphi's LibIntf unit, with a peek into the workings of the TIModule and TIForm classes | ||
Keywords | Beating the System; Customising Delphi IDE; Delphi IDE API; Design time form image; Get component name; GetActiveForm; GetCompCount; GetCompName; GetDesigner; GetFormImage; LibIntf unit; Make image of form; Number of components on form; Open Tools API; Proxies; TFormDesigner; TICompInfo; TIForm class; TILibrary; TLibForm; TWindowDesigner |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 31 : March 1998 | View article | No source code |
Summary | Testing times | ||
Keywords | One last compile... |
Under Construction: A Simple Spelling Checker | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Bob Swart describes the implementation of a spelling checker using minimal resources: ideal for when the Full Monty would be over the top! | ||
Keywords | Binary search; Binary tree; Dictionaries and word lists; Spell checking; Spelling checker; Spelling suggestions; Under Construction |
Delphi Meets COM: Part 4 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | This month Dave Jewell describes some more handy shell extensions: copy hook handlers, icon handlers and property sheet handlers, plus introduces Delphi's support for dispatch interfaces | ||
Keywords | Adding property sheet pages; COM; Context menu handlers; Copy hook handlers; Copying folders; Deleting folders; Delphi meets COM; DispID; Dispatch interface; Dispinterface; Extract icon from file; ExtractIcon; GetIconLocation; IAmbientDispatch; IDispatch; IExtractIcon; IShellExtInit; IShellPropSheetExt; Icon handlers; IpersistFile; Modify file icon in Explorer; Moving folders; Printer status change; Property sheet handlers; Renaming folders; Shell extensions; Type library; Windows Explorer |
Writing Microsoft SQL Server Extended Stored Procedures | |||
---|---|---|---|
Authors | Berend de Boer | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | SQL Server has the powerful capability to make functions in DLLs available as stored procedures, and Berend de Boer has a nifty framework which makes developing such DLLs a piece of cake | ||
Keywords | DLLs; Extended stored procedures; MS Transact SQL and Delphi; MS Transact SQL datatypes; Open Data Services; SQL Server; SQL limitations; Writing DLLs |
Table Source Generator Expert | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Bob Swart describes development of a Delphi Expert which automatically creates source code to regenerate database tables and index files: ideal for plugging into your application so you don't have to ship empty table files! | ||
Keywords | Borland Database Engine BDE; Convert table to HTML; CreateTable; Experts; Generating Paradox indexes; Generating Paradox tables; Paradox table fields; Table source generator; TableBob Wizard; Writing experts |
Delphi 3 Display Glitch | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Delphi 3 Display Glitch | ||
Keywords | Delphi 3 Display Glitch; Palette display problems; comctl32.dll |
Troublesome RichEdits | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Troublesome RichEdits | ||
Keywords | Clipboard; Copying TRichEdit contents; Copying using streams; Streams; TMemoryStream; TRichEdit |
Rounding Inconsistency | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Rounding Inconsistency | ||
Keywords | Bankers rounding; Round function; Rounding Inconsistency; Rounding floating points |
Icons, Metafiles And Graphic Fields | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Icons, Metafiles And Graphic Fields | ||
Keywords | Blob fields; EInvalidGraphic; Graphic fields; Icons; JPEG; LoadFromFile; Metafiles; Storing icon in database; Storing metafile in database; TBlobField |
Thunking: Calling 16-Bit Code From 32-Bit | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 31 : March 1998 | View article | View source code |
Summary | Thunking: Calling 16-Bit Code From 32-Bit | ||
Keywords | Calling 16-bit code from 32; QT_Thunk; Thunking; Windows 95 OSR2 |
Simulating Multiple Inheritance With Delphi Interfaces | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Marco Cant∙ shows how to do what some might believe is the unthinkable using the power and flexibility of interfaces, introduced in Delphi 3 | ||
Keywords | Abstract classes; Abstract virtual methods; Array of interface variables; COM programming; Delphi 3; GUIDs; Interfaces; Multiple inheritance; Object oriented programming; Polymorphism; Reference counting; TInterfacedObject |
Beating The System: Delphi Meets IntelliMouse | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Dave Jewell has been playing with his fancy new wheel-equipped mouse and has found how to make your applications take full advantage of its features | ||
Keywords | Beating the System; Custom Windows messages; Detecting Windows 98; GetVersionEx; IntelliMouse; Mouse programming; Mouse scrolling; Mouse wheel; Mouse wheel messages; RegisterWindowMessage; Three-button mouse; WM_MBUTTONDBLCLK; WM_MBUTTONDOWN; WM_MBUTTONUP; Windows 98; Windows NT 4, NT 5; Windows Version |
Sweet Dreams | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Julian Bucknall writes some easier to use file search routines, with regular expression matching for filenames | ||
Keywords | Better FindFirst, FindNext; Directory search; File finding; File name matching; File search; FindClose; GREP; Greedy algorithms; Linked list; Parsing; Pattern matching; Regular expression engine; Regular expressions; Text matching; Wildcards |
Surviving Client/Server: OLE Automation With SQL Server | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Steve Troxell creates an OLE interface between Delphi and Microsoft's relational database management system, using Distributed Management Objects | ||
Keywords | BDE disadvantages; COM and DCOM; Client/server; DMO; DMO type library; MS SQL Server; OLE Automation; OLE interface for SQL Server; SQL; SQL Server API; Surviving Client/Server; Type library editor |
Surviving SQL: TBatchMove | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 32 : April 1998 | View article | No source code |
Summary | TBatchMove can be awfully slow: Steve Troxell shows how to move data between SQL tables easily and much more quickly | ||
Keywords | Changing table structure; Copying database tables; SQL; SQL INSERT; Surviving SQL; TBatchMove too slow |
Under Construction: A Query HTML CGI-Form Wizard | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Tired of hand-coding all your CGI forms in HTML? No problem, `Dr.Bob' Swart has a wizard to do the job for you, enhancing Delphi 3's Web Modules. Along the way he visits property and components editors too | ||
Keywords | CGI forms; Component Editors; Delphi 3; HTML form wizard; Internet; Packages; Property Editors; SQL query to HTML converter; Under Construction; WWW; Web applications; Wizards and Experts |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 32 : April 1998 | View article | No source code |
Summary | Thanks to Delphi, you may never have to visit your kitchen again | ||
Keywords | One Last Compile... |
Delphi Meets COM: Part 5 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 32 : April 1998 | View article | No source code |
Summary | This month Dave Jewell dives into OLE automation, covering OLE controllers, early and late binding, OLE servers, type libraries and more | ||
Keywords | Automation server; COM programming; Dispinterface; Dual interfaces; Early binding; IDispatch; Late binding; OLE Automation; OLE controllers; OLE interfaces; OLEVariant type; Type library editor; Variant type |
Form Printing DOS-Style | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Paul Warren digs out some old DOS programming techniques and constructs some surprisingly handy form printing routines that don't need any fancy reporting components | ||
Keywords | DOS-style forms; Fonts; Form files; Forms without report tools; Inserting data into forms; Printing forms |
Hooks Unsnagged | |||
---|---|---|---|
Authors | Warren Kovach | Type: Article | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Warren Kovach has discovered why Windows hook programs written in Delphi (and other environments too) can cause access violations and provides some fixes | ||
Keywords | Delphi 3; Error 216 on enter password; Masking floating point error; Non-Microsoft compilers; OpenGL and hooks; OpenGL floating point errors; Password dialog conflicts; Trapping keystrokes; Windows hook errors; Windows hooks |
Grid Cell Positioning | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Grid Cell Positioning | ||
Keywords | Change current DBGrid cell; Grids; SelectedIndex |
Application And Window Handles | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Application And Window Handles | ||
Keywords | Application handles; Calling other programs; CreateProcess; IsWindowVisible; Primary thread handle; Program instance handle; ShellExecute; ShellExecuteEx; Window handles |
DLL Failure | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 32 : April 1998 | View article | View source code |
Summary | DLL Failure | ||
Keywords | .DLL extension required; DLL import declaration; DLL not found error; Moving 16-bit to 32-bit |
Playing Videos | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 32 : April 1998 | View article | View source code |
Summary | Playing Videos | ||
Keywords | AVI and WAV files; AVI or WAV as resource; Linking in resources; Merge resources into EXE; PlaySound; Playing videos; ResHandle; Resouce compiler; Resource scripts; SndPlaySound; TAnimate; TMediaPlayer; TResourceStream |
Multiple Undo | |||
---|---|---|---|
Authors | Warren Kovach | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Large shrinkwrapped applications often have a multi-level undo capability built in: nice, but isn't it fiendishly complex to create? Not so, says Warren Kovach, who takes you through the process step by step, with example projects too | ||
Keywords | Command objects; Convert keycode to character; Data structures; Drawing undo; EM_UNDO message; Extending TMemo undo; Multiple undo; Redo; Self-undoing objects; Stacks; TList as a stack object; Text editing undo; ToAscii; Undo; Undo in standard controls; WM_INITMENUPOPUP |
Round & Round | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Julian Bucknall goes round and round and round... and asks how random your numbers really are. Random number generators pop up surprisingly often and the numbers they generate can be surprisingly un-random! | ||
Keywords | Chi-Square distribution; Coupon Collector's test; Degrees of freedom; Gap test; Linear congruential method; Middle-square method; Mitchell & Moore generator; Poker test; Random function; Random number generators; Random numbers; Randomize procedure; Sum of squares test; Testing randomness |
Surviving Client/Server | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 33 : May 1998 | View article | No source code |
Summary | Steve Troxell describes code tables and how best to use them | ||
Keywords | Client/server; Code tables; Lookup tables; SQL; Surviving client/server |
Creating A File Packing List | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Have you ever missed a key file out of a source code suite when sending it to someone else? Paul Warren has a nifty utility to fix just that problem, which also gives insight into parsing and searching | ||
Keywords | Dependent units; File dependencies; File packing list; Files in uses clause; Files required by component; Missing files; Parsing source code files; Parsing uses clause; Recursion; Searching; Source dependency; TParser |
Beating the System: Delphi Meets IntelliMouse, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Dave Jewell wraps up his discussion of adding MS IntelliMouse support to your applications with a re-usable resource to make it ever so easy, plus clever code to IntelliMouse-enable the Delphi 3 IDE! | ||
Keywords | Beating the system; Borland editor engine; DFWEDIT.DLL; Delphi 3 IDE; IDE enhancements; IntelliMouse; IntelliMouse in Delphi IDE; IntelliPoint software errors; MSH_WHEELSUPPORT_MSG; Mouse wheel; TDesktopForm; TEditWindow; TTimer problems; Timers without TTimer |
Interposer Classes | |||
---|---|---|---|
Authors | Stephen Posey | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Stephen Posey describes a clever way of exposing extra (usually hidden) properties and methods, as well as adding new ones, in components without all the hassle of creating a new component. | ||
Keywords | Add methods to component; Add properties to component; Amending existing components; Dummy classes; Expose Canvas in TPanel; Exposing hidden properties; Exposing private properties; Form inheritance in Delphi 1; Interposer classes; TApplication |
Under Construction: Internet Database Applications | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | In response to reader feedback, Bob Swart discusses how to create real-world CGI applications for the web without using Delphi 3's WebModules: this means you don't need the Client/Server Edition of Delphi 3 to create web apps! | ||
Keywords | CGI actions; CGI applications; CGI form wizard; CGI performance problems; Database editing on internet; Error reporting tool; HTML forms; Internet; Under construction; Web applications; Web database application; Web with no web modules |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 33 : May 1998 | View article | No source code |
Summary | I know exactly what I want (he said) | ||
Keywords | One last compile |
Delphi Meets COM: Part 6 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Dave Jewell continues his in-depth trawl through the wonders of COM programming with an overview of ActiveX, including how to make your own ActiveX controls look truly professional | ||
Keywords | ActiveX; Building ActiveX controls; Custom Windows 95 desktop; Delphi meets COM; Desktop is listview control; OCX; Progman window class; Program Manager; Read only property ActiveX; SHELLDLL_DefView; SysListView32; Version resource in ActiveX; Visual Basic 4 ActiveX |
Radio Group Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Radio Group Problem | ||
Keywords | Access radio group members; Change cursor in radio group; ComponentState property; Controls property; Radio buttons; Radio group problem; cm_CursorChanged |
Application Time-Out | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Application Time-Out | ||
Keywords | Application Time-Out; CallNextHookEx; Close app after fixed time; Detect keyboard inactivity; Detect mouse inactivity; GetCurrentThreadID; SetWindowsHookEx; TTimer; Thread identified |
Event Complexity | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Event Complexity | ||
Keywords | Controlling chained events; Event complexity; Prevent on-click events |
Updating System Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 33 : May 1998 | View article | View source code |
Summary | Updating System Files | ||
Keywords | Abbreviate filename; MinimizeName; MoveFileEx; MoveFile_Delay_Until_Reboot; Updating System Files; Updating files in use; WinInit program; Windows NT |
Real Time 3D | |||
---|---|---|---|
Authors | Ian Ringrose , Joseph Steel | Type: Article | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Ian Ringrose and Joseph Steel describe the development of a real time animated 3D graphics system in Delphi using OpenGL, with textures, transparency and fog effects. They even created a custom component along the way to make life simpler | ||
Keywords | 3D scale models; Animated graphics; Animation; Fog effects; OpenGL; OpenGL, Windows 95 problems; Real time 3D graphics; Silicon Graphics OpenGL; Transparency effects; VRML |
Algorithms Alfresco: Love Plus One | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 34 : June 1998 | View article | View source code |
Summary | In the first instalment of his brand new monthly column on matters algorithmic, Julian Bucknall describes ternary trees: combining the speed of access of a hash table and the alphabetically sorted nature of a binary tree. | ||
Keywords | Algorithms Alfresco; Binary trees; Hash tables; Partial match searching; Searching algorithms; Storing sorted text strings; TStringList limitations; Ternary search trees; Trie |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 34 : June 1998 | View article | No source code |
Summary | Delphi, spitting and the path to true happiness. | ||
Keywords | One last compile |
Delphi For Time Travellers | |||
---|---|---|---|
Authors | Brandon Smith | Type: Article | |
Issue | 34 : June 1998 | View article | View source code |
Summary | If you thought the year 2000 brings problems, try going backwards a few hundred years into the morass of historical calendar systems, with days missing here there and everywhere... But never fear, Brandon Smith has done his homework well and presents a custom component to make sense of it all. | ||
Keywords | Calendar systems; Date problems; Dates in Delphi; Dates in different countries; DecodeDate; EncodeDate; Gregorian calendar; Julian calendar; Julian day numbering; Leap years; Length of a year; Non-existent dates; Problems with early dates; SYSUTILS; Scaliger cycle; TDateTimePicker; Year 1752; Year 2000 |
Surviving Client/Server: Object Oriented Databases | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 34 : June 1998 | View article | No source code |
Summary | Steve Troxell begins a tour of object oriented database systems this month, ebunking the jargon and showing how you can use them in practice, with hints on the real performance gains to be had | ||
Keywords | Object identifiers; Object oriented databases; Relational database systems; Surviving client/server |
Beating The System: Add Extra Richness To RichEdit Controls! | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Dave Jewell thinks Delphi's TRichEdit is great, but he knows it could be even better... This month our sleuth unpicks Microsoft's enhanced Rich Edit 2.0 DLL and shows how to use its snazzy added features in your Delphi projects: multi-level undo, Unicode, automatic URL detection and more | ||
Keywords | Beating the System; CFE_LINK text effect; COMCTRLS unit; Common controls; Detecting URLs; Hyperlinks in rich text; RICHED.DLL; RICHED20.DLL; RICHED32.DLL; RTF format; Rich text; RichEdit 2.0; ShellExecute; TRichEdit; Windows 95; Windows 98; Windows NT; em_AutoURLDetect message |
Under Construction: Database Web Server Extensions | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Following on from last month's instalment, Bob Swart shows how to convert a CGI database application into an ISAPI DLL, for dramatically improved performance, all without Web Modules (so Delphi 3 Client/Server is not a requirement!) | ||
Keywords | CGI versus ISAPI; Debugging ISAPI DLLs; Getting web server info; ISAPI and BDE; ISAPI support units; ISAPI without Web Modules; Internet; IntraBob; Maximum BDE sessions; Multiple database sessions; Multithreading in web apps; TSession; Under construction; Updating ISAPI DLLs; Web applications; Web database applications; Web server; World Wide Web |
Delphi Meets COM: Part 7 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Dave Jewell gets down and dirty with DAX: Delphi's ActiveX framework. He describes the code the wizard generates for you and how to tweak it to make your ActiveX controls even better | ||
Keywords | $E extension directive; ActiveX property pages; ActiveX property sheets; Building ActiveX controls; COM programming; ComServ unit; ComServer variable; DLLRegisterServer; DefinePropertyPage; Delphi ActiveX framework DAX; Delphi meets COM; DllUnregisterServer; MODULES resource; RT_RCDATA resource type; TComServer |
Bad Uninstall | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Bad Uninstall | ||
Keywords | MultiEdit bad uninstall; Registry; Removing Delphi experts |
Control Looping | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Control Looping | ||
Keywords | Components array; Control looping; Controls array; FindComponent; Finding all controls on form; Loop through controls |
BDE Errors | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 34 : June 1998 | View article | View source code |
Summary | BDE Errors | ||
Keywords | BDE error codes; BDE error messages; BDE import units; BDE.INT; Borland Database Engine; DBIERRS.INT; DBIPROCS.INT |
Trapping Database Exceptions | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Trapping Database Exceptions | ||
Keywords | Default exception handler; EDBEngineError exception; Exeption handling; Global exception handler; Trapping database exceptions; Trapping key violations |
Captionless Dragging | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Captionless Dragging | ||
Keywords | Dragging captionless forms; Dragging controls on a form; Moving windows in code; sc_Move; wm_NCHitTest; wm_SysCommand message |
Resetting Autoincrement Fields | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 34 : June 1998 | View article | View source code |
Summary | Resetting Autoincrement Fields | ||
Keywords | DbiDoRestructure; Paradox auto increment; Reset autoincrement fields |
Delphi 4 Preview | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 35 : July 1998 | View article | No source code |
Summary | Brian Long summarises the new goodies to be found in Delphi's latest version, due to hit the streets as you read this... | ||
Keywords | Delphi 4 preview |
Beating The System: RichEdit Controls, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Dave Jewell concludes his look at Rich Edit 2.0, showing how to add multiple undo/redo and encapsulate the URL hyperlink functionality | ||
Keywords | Beating the System; Hyperlinks; Multiple undo/redo; Rich Edit 2.0; Rich text editor; RichEdit controls; Text editor; Undo and redo |
DBGrid Multi-Selection | |||
---|---|---|---|
Authors | Dave Bolt | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Dave Bolt discusses how to implement multi-selection in a DBGrid control | ||
Keywords | DBGrid multiple selection; Database bookmarks; Selected rows in DBGrid; TBookmarkList; dgMultiSelect |
Under Construction: Automated Email | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Bob Swart shows how to automatically send email from your webserver using the SMTP protocol (but not for Spam of course, ok everyone?!) | ||
Keywords | Automated email; Internet; Mail servers; SMTP email protocol; Sending email from webserver; TCP/IP protocol; TClientSocket; Under construction |
The Rise And Fall Of TObject | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Hallvard Vassbotn shares the ins and outs of TObject, showing how to do your own memory management and save some precious kilobytes | ||
Keywords | CleanupInstance; Constructor and destructor; FreeInstance; InitInstance; Memory management; NewInstance; Object construction; Object destruction; TObject; _ClassCreate |
Algorithms Alfresco: Call Me | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Julian Bucknall gives us the low-down on recursion: what is it, when to use it and when to avoid it, and how to avoid it when you need to! | ||
Keywords | Algorithms Alfresco; Fibonacci numbers; Hash tables: correction; Recursion; Recursive routines; Removing recursion; Stack usage |
Manipulating Runtime Type Information | |||
---|---|---|---|
Authors | Philip Brown | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Phil Brown shows how to manipulate runtime type information (RTTI) to advantage in your projects, describing a neat technique for writing and reading object data using RTTI | ||
Keywords | Exporting data using RTTI; Importing data using RTTI; RTTI; RTTI for data storage; RTTI for databases; Runtime type information; SQL |
Surviving Client/Server: ODBMS In Practice, Part 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 35 : July 1998 | View article | No source code |
Summary | Steve Troxell continues his tour of Object Oriented Database Systems, this month showing some examples using Computer Associates' Jasmine database system | ||
Keywords | Computer Associates Jasmine; ODBMS; Object oriented databases; Object query language |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 35 : July 1998 | View article | No source code |
Summary | Databases: the painful truth | ||
Keywords | One last compile |
Delphi Meets COM: Part 8 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Dave Jewell wraps up his discussion of ActiveX controls and reveals another of Delphi's intimate secrets... | ||
Keywords | ActiveX control libraries; ActiveX property pages; BorIDE unit; Building ActiveX controls; COM programming; Delphi 4 COM support; Delphi meets COM; LibIntf unit; Native Tools API; TLibAppBuilder |
BDE Administrator Amnesia | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | BDE Administrator Amnesia | ||
Keywords | BDE Administrator problems |
Bad BDE Installation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Bad BDE Installation | ||
Keywords | BDE installation problems; Borland Database Engine; InstallShield and BDE; Registry |
Dynamic Fonts | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Dynamic Fonts | ||
Keywords | AddFontResource; Dynamic fonts; RemoveFontResource |
Cached Updates Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Cached Updates Problem | ||
Keywords | Cacded updates problem; Multiple lock files; Paradox databsases |
Erratic MDI Menu | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Erratic MDI Menu | ||
Keywords | MDI menu problems |
Shipping Bitmaps | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Shipping Bitmaps | ||
Keywords | Including bitmap resources; Linking in resource files; Resource compiler; Resources in DLL; Resources in EXE; Resources in packages |
Graphic File Extensions | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Graphic File Extensions | ||
Keywords | File open dialogs; FileFormatList; Graphic file extensions; GraphicFileMask |
Office Integration | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 35 : July 1998 | View article | View source code |
Summary | Office Integration | ||
Keywords | Microsoft Outlook; OLE Automation; Working with MS Office |
Mix-In It Up In Delphi | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | David Baer shows that Interfaces are useful for more things than COM programming, with a simple example of a server component communicating with client components | ||
Keywords | COM programming; GUIDs and as operator; IUnknown; Interfaces; Mix-In classes; Multiple inheritance; No need for GUIDs; QueryInterface; TInterfacedObject; TPersistent; _AddRef; _Release |
Under Construction: RobotBob Internet Agent | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Bob Swart builds on his automatic email project from last month to show how to create internet agents and robots to automate tedious tasks like checking websites for new material and fetching files via FTP | ||
Keywords | CGI; Delphi 4 dynamic arrays; Email mailing lists; FTP; FTP downloading; Internet agents; Internet robots; InternetReadFile; Listserver program; POP3 mail; Reading email; Remotely end program; Remotely start program; Run program by email; SMTP mail; Sending email; UUENCODE; Under Construction; WININET |
ImageList In Depth | |||
---|---|---|---|
Authors | Dave Collie | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Dave Collie describes the power that lurks in the TImageList component: it can do far more than immediately meets the eye | ||
Keywords | Image masks; Image overlays; ImageList drag and drop; Overlaid images; TImageList; Transparency in images |
Algorithms Alfresco: Hunting High And Low | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Julian Bucknall discusses text searching using the Boyer-Moore algorithm, showing how it is so much faster than Delphi's built-in Pos function | ||
Keywords | Algorithms Alfresco; Boyer-Moore algorithm; Pattern matching; Pos function; String searching; Ternary tree error corrected; Text searching |
New COM Features In Delphi 4: An Overview | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 36 : August 1998 | View article | No source code |
Summary | Steve Teixeira has taken the reins of our series on COM programming from Dave Jewell and this month introduces the new COM-related goodies to be found in Delphi 4 | ||
Keywords | ActiveX control development; ActiveX framework; Aggregation; Apartment threading; Both threading; COM object wizard; COM programming; Delphi 4; Event support; Free threading; IObjectControl; Implementation by delegation; Implements directive; Microsoft Transaction Server; Multi-threading; OLE automation; Remote DataModules; Single threading; Threading models |
Using Windows Resources | |||
---|---|---|---|
Authors | Philip Brown | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Phil Brown gives us some practical hints on using Windows resources to best advantage in our Delphi apps | ||
Keywords | $R compiler directive; BITMAP resource; CURSOR resource; ICON resource; Linking resource files; RCDATA resource; Resource compiler; Resource file syntax; Resource files; STRINGTABLE resource; TResourceStream; Windows resources |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 36 : August 1998 | View article | No source code |
Summary | Delphi 4, here I come.. | ||
Keywords | One last compile |
Beating The System: A Windows 98 File Association Un-Mangler | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Dave Jewell begins work on a Windows file association un-mangler, teaching us a lot about the ins and outs of the registry along the way. Plus, he outlines what there is (or isn't) for programmers to get excited about in Windows 98... | ||
Keywords | Beating the System; Chached INI files; HKEY_CLASSES_ROOT; Registry; Registry hives; THeaderControl; TMemIniFile; TRegIniFile; TRegistry; Windows 98; Windows 98 for programmers; Windows NT and INI files; Windows file associations |
Optimising Form Handling | |||
---|---|---|---|
Authors | Philip Brown | Type: Article | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Phil Brown has a neat idea to minimise memory use for projects with lots of forms: a forms cache, which can take account of varying memory availability on users' machines to ensure your apps run sweetly | ||
Keywords | Application.CreateForm; AutoCreate forms; Creating forms on demand; Form cache; Form caching; Form handling; Minimising memory use |
David And Goliath | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 36 : August 1998 | View article | No source code |
Summary | A faded and dusty manuscript reveals a strange and disturbing tale... | ||
Keywords | David and Goliath |
Incrementing A Date | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Incrementing A Date | ||
Keywords | Date arithmetic; Incrementing dates |
Access 97 Support | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Access 97 Support | ||
Keywords | Access 97 support; BDE versions; DAO support in BDE |
Access Security | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Access Security | ||
Keywords | Access SYSTEM DATABASE; Access security and BDE |
Memory Management Woes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Memory Management Woes | ||
Keywords | Free; Freeing objects; Is an object disposed; Memory management; Set object pointer to nil |
Forcing Windows Shutdown | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Forcing Windows Shutdown | ||
Keywords | Closing Windows; ERROR_NO_SUCH_PRIVILEGE; EWX_FORCE flag; ExitWindowsEx; Forcing Windows shutdown; SE_SHUTDOWN_NAME; SysErrorMessage; Win32Check |
Delphi Colour Changes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | Delphi Colour Changes | ||
Keywords | Delphi IDE colors; Delphi IDE colours; Delphi registry area |
List Of Numbers | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 36 : August 1998 | View article | View source code |
Summary | List Of Numbers | ||
Keywords | Storing a list of numbers; TList; TStringList.Objects |
Delphi 4 Bugs And Fixes | |||
---|---|---|---|
Authors | Hallvard Vassbotn , Dave Jewell | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Hallvard Vassbotn and Dave Jewell provide news of some glitches in the first release of Delphi 4 | ||
Keywords | Delphi 4 bugs and fixes; Delphi bug list; Cached updates bug; TListBox bug; Listbox bugs Delphi 4; Delphi 4 update; ListBox.ItemIndex; LB_GETCURSEL |
Integrating With Outlook And Exchange | |||
---|---|---|---|
Authors | Berend de Boer | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Berend de Boer shows how to create applications which integrate with Microsoft's Outlook and Exchange | ||
Keywords | Microsoft Outlook; Microsoft Exchange; Email; MAPI; COM; IExchExt; EECONTEXT_VIEWER; IExchExtCommands; IExchExtCallback |
Algorithms Alfresco: That's The Way It Goes | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Julian Bucknall explains sorting algorithms: the good, the bad and the ugly. Get your deck of playing cards out, it's time for some lab work! Which is it to be, bubble, shaker, selection, insertion, Shell or quicksort? | ||
Keywords | Algorithms Alfresco; Sorting algorithms; Bubble sort; Shaker sort; Insertion sort; Improved insertion sort; Sorting performance; Quadratic time algorithms; Shellsort; Quicksort; Recursion; Choosing a sorting algorithm |
Beating the System: Windows 98 File Associations, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Dave Jewell concludes the construction of his Windows file association un-mangler, so now you can happily undo the damage wreaked by a certain well-known software manufacturer... | ||
Keywords | Beating the System; File associations; Registry; Windows 98 |
Dynamic Arrays | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Arrays are incredibly useful and crop up in just about every project we create. But "out of the box" they are rather inflexible as you need to decide upfront how big your array should be. Not any more, Brian Long explains how to make your arrays dynamic: resizeable and powerful, for Delphi 1 right through to Delphi 4, with its new built-in dynamic arrays feature. | ||
Keywords | Dynamic arrays; Heap-based arrays; Generic types; Range checking; Pointer dereferencing; GetMem and AllocMem; ReAllocMem; Allocating memory on heap; TList as a dynamic array; Paradox style dynamic arrays; TStringList as dynamic array; Non-integer array indexes; Array idex must be ordinal; Variant array; Delphi 4 dynamic arrays |
ICon 98: Conference Report | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 37 : September 1998 | View article | No source code |
Summary | David Baer is fresh back from the annual Inprise conference, held this year in Denver. He brings us his own personal report with all the highlights and lowlights (what was that, they ran out of beer...?!) | ||
Keywords | ICon 98 conference report; Inprise 1998 conference |
Surviving Client/Server: ODBMS In Practice, Part 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 37 : September 1998 | View article | No source code |
Summary | Steve Troxell continues his examination of object oriented database systems, with some practical Delphi examples using Jasmine from Computer Associates | ||
Keywords | Surviving Client/Server; Client/Server; Object oriented databases; ODBMS; Computer Associates Jasmine; ODBMS in practice; ODBMS example |
Under Construction: Delphi 4 Web Broker Technology | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Bob Swart has been checking out what's new in internet application support in Delphi 4, now available as an add-on for Professional Edition users too | ||
Keywords | Under Construction; Delphi 4 web broker; Web applications; Internet applications; TDataSetPageProducer; Web Application Wizard; TPageProducer; Web module application; ISAPI; Internal Server Error 500; IntraBob CGI debugger/tester; Debugging ISAPI and NSAPI; Multi-threading in ISAPI; IsMultiThread |
COM Corner: ActiveX Data Binding In Delphi | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Steve Teixeira shows how easy it is to create 'bound' ActiveX controls in Delphi 4 using the wonders of COM programming, able to work with data from whatever source you like... | ||
Keywords | COM programming; ActiveX data binding; Bound ActiveX controls; Data-aware ActiveX; Creating ActiveXs; Writing ActiveXs; ICursor; ICursorMove; VARFLAG_FBINDABLE; VARFLAG_FREQUESTEDIT; VARFLAG_FDISPLAYBIND; IPropertyNotifysinks; Bindable properties; TActiveXControl |
Delphi Component Templates | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Delphi Component Templates | ||
Keywords | Delphi component templates; Copying component templates |
Current Printer? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Current Printer? | ||
Keywords | Getting current printer; Printers unit; AssignPrn; PrinterIndex |
Export To Excel | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Export To Excel | ||
Keywords | Exporting to Excel; TBatchMove |
Flashing Text | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Flashing Text | ||
Keywords | Flashing text |
Microsoft Internet Mail Style Application | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Microsoft Internet Mail Style Application | ||
Keywords | Internet mail style app; Login forms; Form with no taskbar entry; TApplication; MDI; Ws_Ex_ToolWindow; Remove taskbar entry; ShowWindow; Forms with different icons; CreateParams |
BDE Error Dialog | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | BDE Error Dialog | ||
Keywords | BDE error dialog; BDE error messages; Borland Database Engine; DBExcept unit; TDbEngineErrorDlg; EDBEngineError; Exception handling; HookExceptions; Application.OnException |
Capturing DOS Output | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 37 : September 1998 | View article | View source code |
Summary | Capturing DOS Output | ||
Keywords | Capturing DOS output; Capturing redirected output; DOS redirection; CreateProcess; Command.com |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 37 : September 1998 | View article | No source code |
Summary | Rolling back the frontiers | ||
Keywords | One last compile |
Algorithms Alfresco: Like A Tattoo, Introducing Graphs | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 38 : October 1998 | View article | View source code |
Summary | No, not those pretty things you do on squared paper, but computer science graphs (used, for example, in calculating the smallest distance to drive between appointments in several places). Clever stuff from Julian Bucknall... | ||
Keywords | Algorithms Alfresco; Graph algorithms; Scheduling algorithms; Computer science graphs; Network of nodes; Directed graphs: digraphs; Labeled graphs; Weighted graphs; Gantt chart; Travelling salesman; Matrix, matrices; Triangular matrix; Linked lists; Head and tail nodes; Spanning tree |
Building A Parsing Component | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Paul Warren found he got more projects that involved parsing some kind of file to extract information from it. So he sat down and wrote a suite of parsing components to make life easier. His article describes the implementation of parsers for text, comma-separated data, HTML and Delphi Object Pascal code. | ||
Keywords | Parsing components; Text parsing; HTML parsing; Parsing Pascal code; Parsing Delphi code; TParser; Component wrapper; Converting Pascal to HTML; Source code cross-reference; Parsing comma-delimited data |
Under Construction: MIDAS, CORBA And TClientDataSet | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 38 : October 1998 | View article | No source code |
Summary | Multi-tier architecture is all the rage and Bob Swart provides a timely and practical introduction to Delphi 4's support to help you get started. | ||
Keywords | Under Construction; MIDAS; CORBA; TClientDataSet; Multi-Tier computing; COM and DCOM; Distributed applications; Remote Data Module; MIDAS sever and client |
Beating the System: A Delphi Version Reporting Component | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Dave Jewell unravels Microsoft's VERSION resource to create a neat way of using the information contained in your applications at runtime | ||
Keywords | Beating the System; VERSION resource; Getting version information; Version component; VERSION.DLL; GetFileVersionInfoSize; VER.DLL; Versioning API; VS_VERSION_INFO; VS_FIXEDFILEINFO; ToolServices; EXPTINTF unit; ToolServices in components |
Creating A Delphi Build Process | |||
---|---|---|---|
Authors | Dave Collie | Type: Article | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Dave Collie discusses the creation of an automated build process for your Delphi projects, including EXEs, DLLs, resource and help files and so on. Ideal for those working as part of a development team, or where a product includes more than one application. | ||
Keywords | Building projects; Delphi build process; Command line compiler; Compiler configuration files; DCC32.EXE |
Com Corner: Distributed Computing | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 38 : October 1998 | View article | No source code |
Summary | Steve Teixeira continues our series on COM progamming with a lucid explanation of the pros and cons of DCOM and CORBA, helping you to choose the right option for your project. Are you drowning in the alphabet soup of acronyms? Don't miss Steve's explanation. | ||
Keywords | COM Corner; COM programming; Choosing CORBA or DCOM; Distributd computing; Middleware; Object request broker ORB |
Surviving Client/Server: Interactive Query Building | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Steve Troxell discusses how to implement interactive query building to give your users the power to create their own queries without learning SQL. | ||
Keywords | Surviving Client/Server; Client/server; Interactive query building; SQL; Generating SQL; End user queries |
Creating TTables And TFields At Runtime | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Bob Swart describes how to create tables and fields on the fly at runtime to make life easier when distributing your database applications. | ||
Keywords | Creating tables and fields; TField; TTable; Generating tables at runtime; Generating fields at runtime; Get field info for tables |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 38 : October 1998 | View article | No source code |
Summary | The rock pools of Delphi | ||
Keywords | One last compile... |
Undocumented Delphi 4 | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Undocumented Delphi 4 | ||
Keywords | Undocumented Delphi 4; Delphi 4 command line; Delphi 4 registry settings; Delphi 4 easter eggs |
Stopping Windows Shutdown | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Stopping Windows Shutdown | ||
Keywords | Stopping Windows shutdown; Preventing Windows shutdown; OnCloseQuery; CanClose; wm_QueryEndSession |
Program Running Upon Windows Start-Up | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Program Running Upon Windows Start-Up | ||
Keywords | Program runs on startup; Restart program on startup; Registry RunOnce setting; wm_EndSession |
IDE Keyboard Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | IDE Keyboard Problem | ||
Keywords | IDE keyboard problem; Trapping keystrokes |
Keystroke Interception | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Keystroke Interception | ||
Keywords | Keystroke interception; Trapping keystrokes; Intercepting keystrokes; Keyboard; OnKeyDown; Keystroke handling; wm_KeyDown; wm_Char; TranslateMessage; wm_KeyUp; Virtual key codes; vk_ key codes; WinTypes unit; Windows unit; wm_SysKeyDown; wm_SysKeyUp; wm_SysChar; Shift, Alt, Ctrl keys; wm_MenuChar |
Dynamic Fonts Update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Dynamic Fonts Update | ||
Keywords | Dynamic fonts update; Loading fonts at runtime; Font names; wm_FontChange |
Erratic MDI Menu Update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 38 : October 1998 | View article | View source code |
Summary | Erratic MDI Menu Update | ||
Keywords | Erratic MDI menu update; LockWindowUpdate; wm_SetRedraw |
Base64 MIME Encoding | |||
---|---|---|---|
Authors | Damon Matthews | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Damon Matthews describes how to implement Base64 MIME encoding and decoding of binary data: very useful if you have an application which you need to send email with binary attachments from | ||
Keywords | MIME encoding; Base64 MIME; Email; Binary files; Convert binary to ASCII; EBCDIC; Internet; RFC 1521; Binary attachments; UUEncoding; XXEncoding; Quoted printable encoding |
Slimming The Fat Off Your Apps | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Hallvard Vassbotn wants to slim the fat off your software: tune in here if you want [your programs] to be leaner and fitter... | ||
Keywords | Unit initialization section; Delphi code generation; Delphi on Windows NT; Delphi IDE memory use; Unit finalization section; CPU window; Exit procedures; Delphi generates extra code; Reducing memory usage; Long strings; system._initexe; system.initunits; Memory leaks in Delphi 2; Reference counted variables; Reference counting; Reduce memory use |
New Delphi 4 User Interface Features | |||
---|---|---|---|
Authors | Warren Kovach | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Warren Kovach checks out some of the new user interface features which were introduced with Delphi 4, including bitmaps on menus, floating dockable toolbars and more. | ||
Keywords | Delphi 4 user interface; New user interface features; Office 97 look and feel; Menus with bitmaps; TAction and TActionList; TMenuItem; Action property; 3D menus; Toolbars as menus; TToolBar; TToolButton; COMCTL32.DLL ver 4.72; Constraints property; WM_GETMINMAXINFO; Maximum form size; Minimum form size; TControlBar; Floating, dockable toolbars; Docking; Dockable tool windows; dkDock DragKind; DockSite; TMonthCalendar; TPageScroller |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 39 : November 1998 | View article | No source code |
Summary | Delphi Goes To Hollywood | ||
Keywords | One last compile... |
COM Corner: Automation Events | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Steve Teixeira explains the mysteries of events in COM programming: if you've avoided them until now or bravely wrestled with implementation, help is at hand... | ||
Keywords | COM Corner; COM programming; Automation events; OLE Automation; Delphi 4; Events interface; Outgoing interface; Multicasting; IID; Interface identification; IConnectionPointContainer; Connection point; FindConnectionPoint; IConnectionPoint; GetConnectionInterface; Type library editor; Event sink; Server source; InterfaceConnect; InterfaceDisconnect |
Algorithms Alfresco: Priority Queues And Heapsort | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 39 : November 1998 | View article | No source code |
Summary | To progress his discussion of graph algorithms Julian Bucknall takes a slight detour to discuss priority queues and how to work with them, handily showing how to implement the heapsort algorithm along the way too. | ||
Keywords | Algorithms Alfresco; Priority queue; Heapsort; Graph algorithms; FIFO and LIFO; Queues; Tree balancing algorithms; Binary tree; Heap data structure; Binary tree as array; Sorting; Floyd's algorithm |
Under Construction: Website Visitor Tracking | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Bob Swart builds on his introduction to distributed computing by creating a distributed application to monitor and track website visitors in full detail and glorious technicolor | ||
Keywords | Under Construction; Website visitor tracking; Internet; Web applications; TClientDataSet; Multi-tier applications; ActiveForm; Website visitor log; HTTP_USER_AGENT; Obtaining user's IP address; BDE and CGI applications; BDE load/unload time; JavaScript; MIDAS; DCOM; OLEnterprise; ActiveX; TDCOMConnection |
Beating the System: Surfing Explorer's Namespace | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Strange that Delphi doesn't provide a nice neat tree-view dialog to allow your users to select a directory, isn't it? Dave Jewell thought so too and set to with a will to wrap up the SHBrowseForFolder API routine for us and provide some useful enhancements too | ||
Keywords | Beating the System; Windows Explorer namespace; Browsing for folders; Browsing for directory; Select directory or folder; Treeview of directories; SHBrowseForFolder; COMDLG32.DLL; SHELL32.DLL; SelectDirectory; TBrowseInfo; SHGetSpecialFolderLocation; bif_BrowseIncludeFiles; SHGetPathFromIDList; Callbacks |
Preventative Programming: Code Smarter, Debug Less | |||
---|---|---|---|
Authors | Chad Z Hower | Type: Article | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Chad Z Hower wants us all to get home earlier and spend less time staring moodily at the debugger, so he's come up with a raft of hints, helps and tips to ensure our programs work right from the first compile | ||
Keywords | Programming style; Setting up the Delphi IDE; Show component captions; Optimization; Stack frames; Range and overflow checking; Debugging options; Assert; Assertions; Typecasting guidelines; Exception handling; Date formats; FieldByName; Uses statement; Variants |
Paradox Lock Information | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Paradox Lock Information | ||
Keywords | Paradox lock information; Listing locks in use; dbiOpenLockList; BDE locks |
Formatted Numbers | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Formatted Numbers | ||
Keywords | Formatted numbers; Thousand separators; FloatToStrF; FormatFloat; StrToFloat |
RichEdit Tabstops | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | RichEdit Tabstops | ||
Keywords | RichEdit tab stops; Tabstops |
Environment Variables | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Environment Variables | ||
Keywords | Environment variables; DOS environment; GetDOSEnvironment; GetEnvironmentStrings; Environment variables |
Net File Directory | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Net File Directory | ||
Keywords | Paradox net file directory; Change net file directory; Session.NetFileDir; TSession; sesNETFILE |
SQL Dates | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | SQL Dates | ||
Keywords | SQL dates; Formatting dates in SQL |
Folders And Shortcuts | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Folders And Shortcuts | ||
Keywords | Creating Windows shortcuts; Creating program folders; Start menu; Desktop shortcuts; DDE; Program manager; Dynamic data exchange; Explorer shell; Program groups; Link files; IShellLink; IPersistFile; SHGetSpecialFolderLocation; Program folder location; Windows directory location; SHLOBJ unit; SHGetPathFromIDList; IMalloc; SHGetMalloc; Start menu folder; ShellExecute |
Tooltip Characters | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 39 : November 1998 | View article | View source code |
Summary | Tooltip Characters | ||
Keywords | Tooltips; Multiple line hints; Multi-line hints; Carriage return in hint; Carriage return in tooltip |
Diagramming In Delphi | |||
---|---|---|---|
Authors | Jim Cooper | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Jim Cooper describes how to implement some easy to use diagramming classes in Delphi, with a website mapper showing the links between the files making up the site as a real-world example | ||
Keywords | Diagramming; Diagrams; Line drawing; TGraphicControl; TCanvas; Drawing shapes; DrawText; TImageList; Image lists; Arrowhead; Mapping websites; Web applications; Parsing HTML; Parsing algorithms; Website diagram |
Beating The System: Exploiting The System Image List | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | by Windows, to give high-performance access to system-standard icons for drives, folders and so on. Plus, he uses these tricks to replace the clumsy Win3.x style drive list combobox Dave Jewell shows how to use the wealth of icons handily cached for us | ||
Keywords | Beating the System; System image list; Using Windows icons; Cached icons; ImageIndex; TBrowseInfo.iImage; Windows shell; ExtractIcon; CommCtrl unit; ShellAPI unit; SHGetFileInfo; shgfiSmallIcon; shgfiLargeIcon; GetSystemMetrics; ImageList_GetIconSize; ImageList_Draw; TDriveComboBox; Disk drive icons; Windows 95 style drive icons; ImageList_Duplicate; ImageList is read only; GetLogicalDriveSettings; Logical drive letters; List of disk drives; File system information; FAT32; Drive Volume ID; WNetGetConnection |
COM Corner: Namespace Extensions | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Steve Teixeira has been battling with the complexities of namespace extensions. Tune in and see what's been keeping him awake at night: by following his guidelines you could well save yourself some sleep! | ||
Keywords | COM Corner; COM programming; Shell namespace extensions; Extending Explorer namespace; Namespace junction point; IShellFolder; CreateViewObject; IShellView; Browsing COM servers; Finding COM servers; COM servers in Registry; PIDLs (piddles); CreateViewWindow; Self-registering COM server; Closing Shell not Windows; Debugging Shell extensions |
Under Construction: Surfin' Your Surfers With TDecisionCube | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Bob Swart uses the decision cube technology included in Delphi Client/Server Suite to explore his website visitor data, gathered with last month's multi-tier website visitor tracking system | ||
Keywords | Under Construction; TDecisionCube; Decision cubes; Delphi client/server edition; Website visitor tracking; TDecisionPivot; TDecisionQuery; TDecisionSource; TDecisionGrid; Decision Query Editor; SQL; DecisionGrid column width; DecisionGrid.ColWidths; TDecisionChart |
Algorithms Alfresco: Silent Night | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Julian Bucknall describes a rather curious visit he had recently and comes up with a stocking full of useful algorithms full of seasonal cheer... | ||
Keywords | Algorithms Alfresco; Checksum algorithms; Verifying credit card number; Verifying ISBN number; Validation; Self-validating numbers; Date from day of week; EncodeDate; DayOfWeek; ISO date; ISO week of the year; Winsock; TCP/IP; Circular queue; Linear queue; Queue with overflow; Shuffling deck of cards; Shuffling an array; Fractions from decimal; Calculating fractions; Floating point inaccuracy; Continued fractions; Integer to roman numerals; Roman numbers; Convert Roman numbers |
Manufacturing Fake Keystrokes | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Brian Long describes how to manufacture keystrokes in your applications, for example to initiate a sequence of actions programmatically | ||
Keywords | Making fake keystrokes; Simulating keystrokes; Extended keystrokes; Programmatic keystrokes; wm_KeyDown; wm_KeyUp; wm_Char; Internal key state; PostVirtualKeyEvent; PenWindows DLL; KeyBd_Event; MapVirtualKey; Programmatic print screen; Screen capture; vk_SnapShot; Virtual key codes; GetMessageExtraInfo; SendInput; Numeric keypad; WinSight; Delphi 4 SendInput bugs; TAppBuilder; Input_Keyboard; Input_Hardware; TMouseInput; TKeyBdInput; THardwareInput; TInput; dwExtraInfo; dwExtractInfo is incorrect |
Knitting Your Own Threads | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Hallvard Vassbotn has been investigating Delphi's support for multithreading and has found it helpful but lacking. So, this month he presents us with a better model for multithreaded applications | ||
Keywords | Multithreading; Threads; Threading; Threadvar; TLS thread local storage; TlsAlloc; _GetTls; TlsIndex; TlsLast; InOutRes; RaiseList; TThread; IsMultiThread; Detecting multiple threads; BeginThread; Multithreading in the VCL; CreateThread; DelphiMM DLL; BorlandMM DLL; Threads in COM; EndThread; CreateThread; ExitThread; MainThreadID; PostThreadMessage; Thread objects; Synchronize; TThread.WaitFor; Waiting for thread to finish; TThread restrictions; TRTLCriticalSection; SyncObjs unit; TThreadList; CriticalSections; WaitForMultipleObjects; Delphi threading problems; Mutex and semaphore support; Waiting for multiple objects; THandleObject; Thread communication; Avoiding synchronize; WaitMessage; MsgWaitForMultipleObjects; Hooking OnIdle event; Action lists and threads |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 40 : December 1998 | View article | No source code |
Summary | Woke up this mornin' and had those old client/server blues | ||
Keywords | One last compile... |
Surviving SQL | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 40 : December 1998 | View article | No source code |
Summary | Steve Troxell has some handy tips to make life easier when customising your client/server systems for different clients | ||
Keywords | Surviving SQL; SQL; Customising software |
Enhanced Grids | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Enhanced Grids | ||
Keywords | Enhanced grids; TDBGrid; TStringGrid; Vertical Scrollbars; Custom scrollbar behaviour; Customising scrollbars; TScrollBar; wm_VScroll; wm_HScroll; Scrollbar messages; sb_LineUp; sb_LineDown; sb_PageUp; sb_PageDown; sb_ThumbTrack; sb_EndScroll; sb_ThumbPosition; TScrollCode; Scrollbar events; OnScroll; Vertical scrollbar position; Scrollbar on TDBGrid |
Restarting Windows | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Restarting Windows | ||
Keywords | Restarting Windows; ExitWindowsEx; Rebooting computer; Shutting down Windows; Preventing reboot; Undocumented Windows 95; RestartDlg; Windows 95 restart dialog; FindWindow; RestartDialog |
TStringGrid Coordinates | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 40 : December 1998 | View article | View source code |
Summary | TStringGrid Coordinates | ||
Keywords | TStringGrid Coordinates; Selected cell TStringGrid; MouseToCell |
Code Insight Customisation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Code Insight Customisation | ||
Keywords | Code Insight Customisation |
Windows API Help Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 40 : December 1998 | View article | View source code |
Summary | Windows API Help Files | ||
Keywords | Windows API Help Files; Win32 help files; Windows API help; Windows SDK |
Design Patterns | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Hallvard Vassbotn has been checking out the 'gang of four' and considering their suggestions for a new approach to software design. In this article he discusses the best approach to implementing design patterns in Delphi, with the Singleton pattern presented as a working example | ||
Keywords | Design patterns; Software design; Gang of four; Singleton design pattern; Gamma; Christopher Alexander; Object Pascal and C++; Software re-use (reuse); Class reference variables; Virtual constructors; Single instance of class; Singleton classes; Visibility of methods; Class procedures; Prevent object destruction; Prevent object creation; Assertions; Class fields |
Surviving Client/Server: Replicating Server Constraints | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 41 : January 1999 | View article | No source code |
Summary | Steve Troxell has observed a constant struggle in client/server development about where and how to enforce data constraints. Here he discusses Delphi's solution to the problem, the data dictionary included from Delphi 2 up, with tips on using it for real and its drawbacks too | ||
Keywords | Surviving client/server; Client/server; Replicating constraints; Server constraints; Client constraints; Data constraints; Data validation; Data integrity; Delphi data dictionary; SQL Explorer; CustomConstraint; DisplayFormat; MaxValue, MinValue; TField attribute sets; Database schema; BDE aliases; Check constraints; Data dictionary problems; BDE and Database aliases |
Algorithms Alfresco: Join The Dots | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Julian Bucknall bravely dives head first into the concluding part of his discussion of graph algorithms. Topological sorts, solving the travelling salesmen problem, the algorithms of Prim and Dijkstra, it's all here so come join the party... | ||
Keywords | Algorithms alfresco; Graph algorithms; Topological sorting; Depth first traversal; Unconnected graphs; Directed acyclic graph: dag; Breadth first traversal; Shortest path algorithm; Priority first traversal; Prim's Algorithm; Spanning tree; Travelling salesmen problem; Traveling salesmen problem; NP-complete problems; Dijkstra's Algorithm; Lowest cost path |
Under Construction: Usenet News Reading | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Bob Swart investigates how to write your very own Usenet Newsgroup reader in Delphi, from the ground up, covering the murky world of the NNTP protocol, sockets and more. | ||
Keywords | Under Construction; Internet applications; NNTP protocolk; Newsgroup reader; Socket programming; Usenet newsgroups; Network news transport; TNMNNTP component; WinSock |
Diagramming With Delphi, 2: The Adventure Continues | |||
---|---|---|---|
Authors | Jim Cooper | Type: Article | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Jim Cooper enhances the diagramming classes from last month, making the diagram elements movable and sizeable, adding the capability to store diagrams, and using all this functionality in a use case editor (for all you OO design methodology experts out there!) | ||
Keywords | Diagramming; Line drawing; Diagrams; Diagram classes; Class methods; Saving objects to streams; RegisterClass; Sizing and moving components; Adding font property; Use case diagrams; Object oriented design; Use case editor; Unified Modelling Language; UML; Unified Process |
Beating the System: Animated Icons And Cursors, 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Dave Jewell has been delving into the workings of the animated cursor files introduced by Microsoft in Windows NT, but now available in Windows 95 and 98. He presents code to allow you to easily include animated icons and cursors in your Delphi applications, with the minimum of fuss and resource use. | ||
Keywords | Beating the System; Animated icons; Animated cursors; ANI files; RIFF file format; ICO files; Icon file format; TIconHeader; TIconDirEntry; Animation; Jiffy; dwJIFRate; Streaming animated icons; TGraphic streaming support; TImageList.SharedImages; Image List; System image list; MicroAngelo icon editor |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 41 : January 1999 | View article | No source code |
Summary | The source of all wisdom | ||
Keywords | One last compile... |
COM Corner: Automation Collections | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Steve Teixeira observes that every language and programming method seems to have its approach to creating and using containers, and COM is no exception. This month he explains how to use COM collections to best effect | ||
Keywords | COM Corner; COM programming; Automation collections; Containers; IDispatch; Containers in COM; Arrays in COM; _NewEnum; IEnumVARIANT; DISPID_NEWENUM; OleVariant; RegisterNonActiveX; ActiveX controls |
Is This Property Published? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Is This Property Published? | ||
Keywords | Is a property published?; RTTI; Runtime type information |
SQL Cursor Banished | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | SQL Cursor Banished | ||
Keywords | Do not use SQL cursor; Disable SQL cursor; crSQLWait cursor; Session.SQLCursor |
Bracket Matching | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Bracket Matching | ||
Keywords | Bracket matching in Delphi; Delphi IDE |
Win32 System Modal Window | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Win32 System Modal Window | ||
Keywords | Win32 system modal window; Windows NT; Screen saver; SystemParametersInfo; spi_ScreenSaverRunning |
Bad Editor Line Numbers | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Bad Editor Line Numbers | ||
Keywords | Incorrect editor line number; Delphi IDE |
Backspace And New Line | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Backspace And New Line | ||
Keywords | Backspace and new line; Delphi IDE |
Edit-Less TDBGrid | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Edit-Less TDBGrid | ||
Keywords | Non-editable TDBGrid; Prevent editing of TDBGrid; Allow editing of TStringGrid; TDBGrid.Options; dgEditing; TStringGrid.Options; goEditing |
Control Panel Invocation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 41 : January 1999 | View article | View source code |
Summary | Control Panel Invocation | ||
Keywords | Starting control panel; Control panel applets; CPL files; Shell32.dll; shell.dll; RunDll32.exe; RunDll.exe; Running a DLL; control.exe |
OpenGL: Under The Hood | |||
---|---|---|---|
Authors | John Hutchings | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | John Hutchings shows how to create 3D graphics applications that will just blaze along, with a handy set of components to encapsulate the OpenGL API and shield us from all the gory details! | ||
Keywords | OpenGL; 3D graphics; GLINT chipset; Vector drawing; Direct3D versus OpenGL; OpenGL components; OPENGL32.DLL; GLU32.DLL; Silicon Graphics OpenGL DLLs; Microsoft OpenGL DLLs; OpenGL 1.2 Delphi interface; Rendering context; wglCreateContext; glViewport; Coordinate systems; Head-up-display; 3D primitives; Text in OpenGL; Bitmaps in OpenGL; Textures; Fonts; Saving OpenGL images to disk; Rendering to a buffer |
Implementing Active Server Pages | |||
---|---|---|---|
Authors | Eyal Hirsch | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Microsoft's ASP technology is becoming more and more widely used, but Delphi does not currently include ASP DLLs in the list of web application types it can generate. Eyal Hirsch demonstrates how we can plug the gap for ourselves | ||
Keywords | Active Server Pages; ASP in Delphi; Creating ASP DLLs; Web applications; World wide web, internet; Building ASP objects; Personal Web Server; Assigning TCP/IP addresses; ASP type library; IScriptingContext; IResponse; Databases and ASP; TDataSetTableProducer; Generating HTML |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 42 : February 1999 | View article | No source code |
Summary | Portrait of the Artist as a Young Coder | ||
Keywords | One Last Compile... |
Update: Diagramming In Delphi, Part 2 | |||
---|---|---|---|
Authors | Jim Cooper | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Jim Cooper fixes a glitch in the second instalment of his diagramming article, from the January 1999 issue | ||
Keywords | Diagramming in Delphi; Issue 41 update; Drawing |
Beating the System: Animated Icons And Cursors, 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | In this second part of his investigation of ANI files, Dave Jewell presents components to display an animation on a form and to use an animated icon in the Windows tray icon area | ||
Keywords | Beating the System; Animated icons and cursors; Property editors; DSGNINTF unit; Component building; Registering property editors; Animated Windows tray icons; Windows taskbar; Shell_NotifyIcon; Window handle with no window; AllocateHWnd; Hidden windows; DeallocateHWnd; Animated cursors; LoadImage |
Paradox File Corruption | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | It seems that corruption of Paradox table and index files is still rife, but Brian Long has been searching high and low for the information you need to avoid such problems. He's also created a handy utility which will investigate the various relevant system settings on a machine and alert you to any issues | ||
Keywords | Paradox file corruption; Paradox index corruption; Paradox table corruption; BDE; Database file corruption; Session.PrivateDir; Lock file has grown too big; Paradox temporary files; Local Share; Packing Paradox tables; Disk caching problems; dBase file corruption; VREDIR.VXD; VNETSUP.VXD; Data sharing with NT Server; Windows 95 and NT Server; Write-behind caching; Synchronous buffer commits; File locking semantics; AsyncFileCommit; SoftCompatMode; Novell netware networks; Opportunistic locking; ForceLazyOff; SmartDrive; RestartDialog; CheckRegistryEntry; TUtility |
Algorithms Alfresco: Back On The Chain Gang | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Julian Bucknall opens the can on linked lists. So you think you know all about these ubiquitous data structures? Well think again, as Julian has some neat tricks up his sleeve to make life easier and your applications faster! | ||
Keywords | Algorithms Alfresco; Linked lists; Container data structure; TList; Singly linked list; Doubly linked list; Array versus linked list; Nodes; EZDSL class library; Typeless pointer; Allocating memory; Delphi heap manager; Memory management; Free list structure; Cursor in linked list; Sorting a linked list; Sorting singly linked list; Sorted list; Insertion sort; Binary search; Searching linked list; Stack and queue; LIFO and FIFO; Enqueue and dequeue; Circular linked list; Multilist linked list; Hash tables |
Under Construction: Usenet News Reading, 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Bob Swart continues his work with the Network News Transfer Protocol (NNTP), showing how to write code that posts messages to Usenet newsgroups | ||
Keywords | Under Construction; Usenet newsgroups; NNTP; Posting messages; News server; Socket programming; Winsock; Response status codes |
COM Corner: ActiveX Documents, Part 1 | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Another first for The Delphi Magazine! Steve Teixeira has unravelled the techniques you need to create ActiveX document servers in Delphi | ||
Keywords | COM Corner; ActiveX document servers; OLE; Automation; OLE 2.0 Document Objects; ActiveX document interfaces; Delphi ActiveX framework DAX; Automation server; IPersistStorage; IPersistFile; IOleObject; IDataObject; IOleInPlaceObject; IOleInPlaceActiveObject; IOleDocument; IOleDocumentView; IOleCommandTarget; IPrint; Frames documents views; IOleInPlaceFrame; IOleInPlaceSite; IOleContainer; TActiveXControl; FOleInPlaceSite; ObjQueryInterface; IOleLink |
SQL Query | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 42 : February 1999 | View article | View source code |
Summary | SQL Query | ||
Keywords | SQL; SQL queries on two tables; Help with writing SQL; QBE; Translating QBE to SQL; Database desktop; Visual query builder; Generating SQL queries; SQL SELECT, COUNT, WHERE; TQuery; SQL Builder; SQL DISTINCT; BDE local SQL; SQL JOIN |
Delphi 4 Docking | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Delphi 4 Docking | ||
Keywords | Delphi 4 docking; Turn docking off; GetDockSiteAtPos; Dockable windows in IDE; GetKeyState |
Delphi Hangs PC | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Delphi Hangs PC | ||
Keywords | Delphi hangs the computer; Inastalling components; Delphi 3; Image list bugs; COMCTL32.DLL versions; Video card drivers; Graphics cards; TImageList; Delphi IDE; Woll2Woll; Diamond Stealth; Matrox; S3 graphics chip; Diamond Viper; Neo Magic; Windows 98 |
Delphi 4 Components | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Delphi 4 Components | ||
Keywords | Delphi 4 component errors; Delphi 4 bugs; Method overloading; Function overloading; Registering components; Missing components; Components not installed; Name mangling; Register procedure |
Delphi 4 Editor Enhancements | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Delphi 4 Editor Enhancements | ||
Keywords | Delphi 4 editor enhancements; Delphi IDE; Code explorer; Class completion; Module navigation; Code browser; Tooltip symbol insight |
Delphi 4 Code Insight Customisation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 42 : February 1999 | View article | View source code |
Summary | Delphi 4 Code Insight Customisation | ||
Keywords | Delphi 4 Code Insight; Customising code insight; Code completion; Delphi 4 IDE; Name sorting |
Algorithms Alfresco: Follow Me, Follow You | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Since it will soon be time for all those Spring lambs to begin cavorting all over the place, Julian Bucknall is developing skip lists this month... Good structures for storing sorted data, says the maestro! | ||
Keywords | Algorithms Alfresco; Skip lists; Linked lists; Doubly linked list; William Pugh; Balanced trees; Sorted data structures; Probabilistic; Unbalanced binary tree; Balancing algorithms; Duplicate items in skip list; Deterministic skip lists; Munro, Papdakis, Sedgewick; 1-2 Skip list; Shuffle algorithm; Issue 40 update; Errata Issue 40; Memory management; Heap manager |
Updating MakeMethodInstance | |||
---|---|---|---|
Authors | Peter Sokolov | Type: Article | |
Issue | 43 : March 1999 | View article | No source code |
Summary | In Issue 18 John Chaytor described procedures for creating wrappers around class methods so they could be used as standard Windows callback procedures. Peter Sokolov has an update | ||
Keywords | Issue 18 update; Issue 18 errata; Wrapper around class method; Class methods; Class methods as callbacks; Windows callbacks; Memory allocation; MEM_COMMIT; MEM_DECOMMIT; Reserving virtual memory; MEM_RESERVE; MEM_RELEASE; MakeMIC unit |
Tooltips Under Your Control | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Brian Long has found some interesting and useful ways to customise Delphi's tooltips capability for use in your own applications: persistent hint windows, text completion tooltips and display improvements to string grids and other components | ||
Keywords | Tooltips; Hints; Persistent hint windows; Customised tooltips; Customised hint windows; THintWindow; Tooltip symbol insight; Code parameters window; TTokenWindow; TPropertyHintWindow; Non-standard tooltips; Hint windows that stay open; HintWindowClass; CalcHintRect; Application.OnActivate; Application.OnDeActivate; SWP_NOACTIVATE; SetWindowPos and ShowWindow; StringGrid obscured cells; Partly obscured grid columns; Partly obscured grid cells; Hint shows full cell content; Hint window; TStringGrid; Text completion tooltips; MouseToCell; Find cell under mouse cursor; Mouse messages; Message handling; TDBGrid; MouseToCoord; Field under mouse cursor; TListBox obscured items; Item too wide for listbox; Display wide item in listbox; Hint window beeps; Click on hint window |
Under Construction: Delphi 4 and CORBA | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Bob Swart introduces CORBA Server and Client development for Delphi programmers, with a handy application to retrieve newsgroup messages from behind your company's firewall! | ||
Keywords | Under Construction; CORBA; Delphi 4; Client/Server; ORB and IIOP; IDL; Marshalling; Newsgroup CORBA server; NNTP newsgroup reader; TCorbaImplementation; Type library editor; Visibroker Smart Agent; CORBA development |
DelayLoading of DLLs | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Hallvard Vassbotn takes an in-depth tour of the use of DLLs, implementing DelayLoading in Delphi. As seen first in Microsoft's Visual C++ 6.0, this allows your DLLs to be loaded only when the first DLL routine is called, as well as choosing between different DLL versions at runtime, conditional loading of feature-specific DLLs and more | ||
Keywords | DelayLoading of DLLs; Microsoft Visual C++ 6.0; /DELAYLOAD option; DLL loading on demand; Implicit and explicit import; LoadLibrary; GetProcAddress; Writing and using DLLs; Thunking; External directive; Name directive; DLL routines case sensitive; Import by ordinal value; Import by name; Index directive; DLL import unit; Handling missing DLLs; DLL version problems; Routines missing from DLLs; Dynmic linking of DLLs; Generating code at runtime; Generating executable code; CPU instruction opcodes; Machine code; Bug in Delphi debugger; Integrated debugger bug; Breakpoint bugs; Using SizeOf in BASM; Built-In Assembler BASM; SizeOf always returns $34; Packages and performance; Packages and DLL calling; Allocating executable memory; PAGE_EXECUTE; PAGE_EXECUTE_READWRITE; VirtualProtect; GetMem; VirtualAlloc; Memory access rights; HeapCreate; HeapAlloc; HeapSize; HeapFree; HeapDestroy; Private memory heaps; Memory fragmentation; __fastcall convention; Peter Sawatzki |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 43 : March 1999 | View article | No source code |
Summary | Onwards and Upwards | ||
Keywords | One last compile... |
Delphi, Dates And The Year Two Thousand | |||
---|---|---|---|
Authors | David Sutherland | Type: Article | |
Issue | 43 : March 1999 | View article | No source code |
Summary | David Sutherland reviews the origins of the so-called millennium bug, showing how it can affect more than you might think. He has strategies for overcoming date-related problems to ensure your systems are compliant | ||
Keywords | Year 2000, Y2K; Millennium bug; Date handling; Year two thousand; Two-digit date data; Year 2000 compliance; Leap year; Inprise and Year 2000; Paradox and Year 2000; Interbase and Year 2000; dBase and Year 2000; Windows short date format; Windows date format; Regional settings; TDateTimePicker year 2000; ShortDateFormat; Four-digit year in Delphi; TwoDigitYearCenturyWindow; StrToDate, StrToDateTime; Adrock date classes; TAdrockDate component; Date arithmetic |
Beating the System: Protecting Your Intellectual Property | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Dave Jewell discusses how to protect your trial components against the attentions of pirates and encourage users to register them. He has some clever little tricks up his sleeve... | ||
Keywords | Beating the System; Code obfuscation; Protection from piracy; Detect Delphi running; Component trial versions; Shareware; Is Delphi IDE running; FindWindow; TAppBuilder; Finding running programs; Delphi IDE hidden windows; GetProcAddress; Parent process; ToolHelp unit; Process32First; Process32Next; Program launched from Delphi; GetCurrentProcessID; Windows NT PSAPI; IsDebuggerPresent |
COM Corner: ActiveX Documents, Part 2 | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Steve Teixeira concludes his discussion of building ActiveX Document Servers. | ||
Keywords | COM Corner; COM programming; ActiveX Document Server; Out of process server; In process server; InprocHandler32; CLSID; DocObject; Insertable key in ProgID; In process handler; DAX ActiveX framework; ActiveX Documents; IOleDocument; IOleDocumentView; InPlaceDeactivate; IOleInplaceObject; OnDocWindowActivate; InPlaceActivate; Overriding static methods; HTML OBJECT tag; Registering ActiveX server |
Better Calculated Fields | |||
---|---|---|---|
Authors | Rohit Gupta | Type: Article | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Rohit Gupta describes how calculated fields should have been | ||
Keywords | Calculated fields; Database applications; Interposer classes; Stephen Posey; Overriding routines; Enhanced calculated fields; Datachange event |
Task Bar Calculations | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Task Bar Calculations | ||
Keywords | Windows task bar; Is task bar present; Task bar location on screen; SystemParametersInfo; Monitor working area |
IDE Dissatisfaction | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 43 : March 1999 | View article | View source code |
Summary | IDE Dissatisfaction | ||
Keywords | Delphi IDE; Code completion window width; Tooltip delay time; DefHintHidePause; Tooltip pause; Application.HintHidePause |
More On Property Editors | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 43 : March 1999 | View article | View source code |
Summary | More On Property Editors | ||
Keywords | Property editors; DataField property; Custom property editor; Data-aware components |
Delphi 4 Disservice | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Delphi 4 Disservice | ||
Keywords | Delphi 4 and NT services; Start and stop an NT service; Windows NT; TServiceApplication; TService; Creating NT services; NT service not in IDE wizard; SVCMGR unit |
Missing DBGrid Events | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 43 : March 1999 | View article | View source code |
Summary | Missing DBGrid Events | ||
Keywords | TDBGrid; Column resize in DBGrid; Mouse dragging; Column resize events; FGridState; gsColResizing; CalcDrawInfo; CalcSizingState; dgIndicator current record |
One Step ActiveX | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 43 : March 1999 | View article | View source code |
Summary | One Step ActiveX | ||
Keywords | One step ActiveX; Creating ActiveX controls; Non-visual components; DAX; Convert component to ActiveX |
Beating the System: Putting The Squeeze On | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Dave Jewell shows how vulnerable unprotected Delphi applications are to the attentions of hackers and describes techniques you can use to protect your software | ||
Keywords | Beating the System; Protecting against hackers; Software security; Application security; Hacking; Reverse engineering; Merlin; Extracting resources; TImageList bug with Delphi 4; Create project from EXE file; Form files from EXE file; EXE2DPR utility; Protecting trial software; UpdateResource; LoadLibraryEx; EnumResourceNames; RT_RCDATA resource; stdcall with API enumeration; Callbacks; VCL callbacks; ObjectBinaryToText; EXE file compressors; Compressing executable files; ASPack; Shrinker; Petite; PkLite |
An HTML File Reference Corrector | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Paul Warren shows how to move a whole bunch of HTML files whilst keeping the relative links within them intact. As well as saving you hours of link-fixing, the article also covers a number of techniques which you can apply to many other projects too. | ||
Keywords | HTML file references; Hyperlinks; HTML |
Surviving Client/Server: Power SQL | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Lots of people think that SQL is only good for input/output work, simple joins and trivial calculations. When faced with some complex processing, they give up on SQL too quickly and code the task in Delphi instead. But, says Steve Troxell, with a little thought, SQL can do an amazing amount and give you shorter, more efficient code that's easier to debug! | ||
Keywords | Surviving Client/Server; SQL; Program logic in SQL; SQL for data processing; Complex SQL; Effective date of data; DateAdd in SQL Server; Date arithmetic in SQL; SQL DECLARE CURSOR |
Safer Sockets | |||
---|---|---|---|
Authors | Primoz Gabrijelcic | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Sockets make a frequent appearance in internet applications; Primoz Gabrijelcic outlines the problems he experienced with Delphi's TWinSocketStream class and details workarounds to get your projects moving again, including a new replacement class. | ||
Keywords | TWinSocketStream bugs; Streams; Winsock programming; Sockets; ScktComp unit; TCP/IP; Slow and noisy modem lines; Buffer overwrite |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 44 : April 1999 | View article | No source code |
Summary | Delphi and the Beautiful People | ||
Keywords | One last compile... |
Algorithms Alfresco: Knocked Down, Made Small | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | This month Julian Bucknall describes some data compression algorithms, including Huffman encoding. | ||
Keywords | Algorithms Alfresco; Compression algorithms; Data compression; Huffman encoding; Huffman tree; Binary tree; Compress data stream |
COM Corner: CoPourri | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Steve Teixeira answers some readers' queries on COM progamming: adding COM interface types to the type library editor, exchanging binary data between an Automation client and server, and getting Automation server events to fire back to multiple clients. | ||
Keywords | COM Corner; COM programming; Adding type definitions; Type library editor; Interface definition; Automation data exchange; Automation client and server; safearray; OleVariant; One object multiple clients; Surfacing events; Event handling in COM; TConnectionPoints.Kind; ckMulti; IConnectionPointContainer; RegisterActiveObject; GetActiveObject |
Under Construction: Delphi 4 And Java | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) , Hubert Klein Ikkink | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Bob Swart is joined by Java expert Hubert Klein Ikkink this month, together they connect a Java applet to a Delphi web server application. | ||
Keywords | Under Construction; Java and Delphi; Socket programming; CGI programming; Java applet; Web-based To Do notes; Java to Delphi communication; Communication using sockets; TCP/IP; TServerSocket; stNonBlocking; stThreadBlocking; TClientSocket |
A Delphi Singleton Class: Update | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Marco Cant∙ and Hallvard Vassbotn have been discussing the best implementation of the Singleton pattern in Delphi between them, following Hallvard's article on the topic in the January 1999 issue. | ||
Keywords | Design pattens; Singleton pattern; Hallvard Vassbotn |
Bitmap Puzzle | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Bitmap Puzzle | ||
Keywords | Bitmap buttons; Bitmaps for TBitBtn; Glyph properties; NumGlyphs; TBitmap.TransparentColor; Bitmap transparency |
TTable Component Editor | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 44 : April 1999 | View article | View source code |
Summary | TTable Component Editor | ||
Keywords | TTable component editor; Writing component editors; Adding component editors; TDefaultEditor; TDataSetEditor; DsgnIntf unit; GetComponentEditor |
Treeviews And Tooltips | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Treeviews And Tooltips | ||
Keywords | Treeviews and tooltips; Windows NT and treeviews; Turn off Treeview tooltips; COMCTL32; TVS_NOTOOLTIPS |
Long And Short Filename Conversion | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 44 : April 1999 | View article | View source code |
Summary | Long And Short Filename Conversion | ||
Keywords | Long and short filenames; Long to short filename; Short to long filename; ExtractShortPathName; GetShortPathName; TSearchRec |
Internet Cookies | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Cookies are a good way of saving state in your web applications and Bob Swart shows how easy they are to implement, without any expensive add-on packs or Delphi's Client/Server version | ||
Keywords | Internet cookies; Saving state; Web applications; Fat URLs; HTTP; CGI and ISAPI; CGI forms; Hidden fields in HTML forms; WebBroker; Persistent data in web apps; Web browser; Setting, retrieving cookies; Set-Cookie; HTTP header |
Beating The System: Fun With Bitmaps | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Dave Jewell has been twiddling pixels: he shows how to manipulate bitmaps at the pixel level to create a variety of effects in double quick time, using the ScanLine property of Delphi's TCanvas class. Brightness changes, flipping and Gaussian blurs are amongst the facilities offered by our maestro. | ||
Keywords | Beating the System; Bitmap manipulation; ScanLine property; Imaging toolkit; TCanvas.Pixels array; TBitmap.Scanline; PixelFormat; Bitmap brightness; Bitmap flipping; Gaussian blurs |
DCOM Deployment Secrets | |||
---|---|---|---|
Authors | Roy Nelson | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Roy Nelson describes some common issues faced by developers in the deployment of DCOM applications, helping us avoid the usual pitfalls! | ||
Keywords | DCOM deployment; E_NOINTERFACE error; Proxy and stub DLLs; CreateRemoteCOMObject; CoCreateInstanceEx; Deployment of DCOM clients; DCOM installation problems; QueryInterface; Registry settings; Type library; LoadTypeLibEx; Register DCOM server; Unregister DCOM server; DCOM out of process server |
Algorithms Alfresco: Cherchez La Femme | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Julian Bucknall takes the lid off Lempel and Ziv's LZ77 compression algorithm, saying hello to messrs Shannon, and Fano along the way, plus the PKZip Deflate method. The patent minefield introduced courtesy of Unisys is also outlined. Julian neatly sidesteps all these problems by creating our very own Algorithms Alfresco variant of LZ77, which is of course better! | ||
Keywords | Algorithms Alfresco; Compression algorithms; LZ77 compression; Data compression; Shannon-Fanno; Lempel-Ziv; Software patents; Compression dictionary; Sliding window; PkZip; Deflate algorithm; Microsoft Expand; GIF compression; Unisys; LZW algorithm, LZ78; Circular queue; Hash table; Linked list |
Under Construction: Delphi 4 And Java, Part 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) , Hubert Klein Ikkink | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Bob Swart and Hubert Klein use CORBA to enable communication between Delphi and Java applications | ||
Keywords | Under Construction; Delphi to Java communication; CORBA programming; Multi-tier applications; CORBA server; CORBA objects; Type libraries; Java, JBuilder; Diary application |
Is Delphi Running? | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Often you want code to behave differently at design-time and runtime, or find out if Delphi is installed, running or launched your application. Brian Long explains all the tricks you need to know, covering all versions of Delphi. | ||
Keywords | Is Delphi running?; Is Delphi IDE running?; Program launched by Delphi?; Trial software; Is Delphi installed?; Execution in Delphi IDE; Design time packages; csDesigning; ComponentState; Trial components; Register procedure; IDE versus application; Delphi launched the program; Delphi registry entries |
Getting The Message | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | David Baer looks into the mysteries of Windows messaging and how it interacts with Delphi, presenting a very useful component which can be used to eavesdrop on Delphi internal message flows in a far more intimate way than external spy tools like WinSight32 | ||
Keywords | Windows message handling; Delphi and messages; Using Windows messages; SendMessage; Windows API; TControl.Perform; WndProc; Window handles; TObject.Dispatch; Windows messages explained; VCL messages; DoControlMsg; Message spy utility; Monitoring messages; CM_MOUSEENTER; CM_MOUSELEAVE; CM_FONTCHANGED; Hooking Windows messages; VMT |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 45 : May 1999 | View article | No source code |
Summary | Life, the universe and components. | ||
Keywords | One last compile... |
COM Corner: Microsoft Transaction Server, Part 1 | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 45 : May 1999 | View article | No source code |
Summary | and this month Steve Teixeira explains how it's really about much more than transactions. The COM-based MTS technology has been generating much interest lately | ||
Keywords | COM Corner; COM programming; MTS; Microsoft Transaction Server; Scalable applications; Multi-tier systems; N-Tier systems; Stateful objects; Stateless objects; MTS packages; MTS security |
Debugging Web Applications | |||
---|---|---|---|
Authors | Brandon Smith | Type: Article | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Brandon Smith reports some useful techniques for debugging ISAPI, ASP and similar web applications. His recent review of web app development tools for Delphi is on this month's disk too! | ||
Keywords | Debugging web applications; Debugging ISAPI; Changing ISAPI and ASP DLLs; Restarting web server; Internet Information Service; NT Server 4 and IIS 4; Replacing loaded DLLs; Turning off IIS caching; In-memory caching |
GUID Equality | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | GUID Equality | ||
Keywords | Are two GUIDs the same?; GUID equality; GUID is not a string |
TStringLists And Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | TStringLists And Files | ||
Keywords | TStringLists and files; LoadFromFile; Character #0 is end of file |
CORBA Limitation? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | CORBA Limitation? | ||
Keywords | CORBA IDL and Delphi; Translating IDL to Delphi; Type library editor; Type library as Pascal; Skeleton and stub classes; CORBA server |
CORBA And DUN | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | CORBA And DUN | ||
Keywords | CORBA and dial up networking; DUN; Windows AutoDial; TCP/IP |
Paradox Update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Paradox Update | ||
Keywords | Paradox file corruption; See website for new version! |
NT Service Wizard Update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | NT Service Wizard Update | ||
Keywords |
Long Filename Update | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Long Filename Update | ||
Keywords | Long Filename Update; SHGetFileInfo; SHGFI_DISPLAYNAME |
Update: Tooltips Under Your Control | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 45 : May 1999 | View article | View source code |
Summary | Update: Tooltips Under Your Control | ||
Keywords | Tooltips update Issue 43; Tooltip on DBGrid memo field; Memo contents in tooltip |
ActiveX Data Objects | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Guy Smith-Ferrier describes Microsoft's new ADO technology for data access and shows how to use it in your Delphi applications. Powerful database access and, look Ma, no BDE! | ||
Keywords | ActiveX Data Objects; ADO; Database access; BDE Borland Database Engine; IDAPI; OLE DB; ODBC; COM; DAO Data Access Objects; RDA Remote Data Access; Multi-tier applications; ADO Recordset; Early or late binding; Dispinterfaces; ADO and BDE equivalents; ADO Connections; ADO exception handling; EOLEException; OLE DB Provider; ADO transaction handling; ADO schema information; ADO connection pooling; Briefcase model; Recordset persistence; TClientDataset; ADO third party products; Cybermagic Adonis; Lectum ADOSolutio; Delphi 5; ADO installation |
Algorithms Alfresco: Occupy Your Mind | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Julian Bucknall shows how to efficiently parse algebraic expressions by converting them to reverse Polish notation (no, not by hand, silly!). He also reveals that even columnists fail on some projects ands cheats at his brother-in-law's homework too... | ||
Keywords | Algorithms Alfresco; Expression parsing; Algebra; Reverse Polish Notation RPN; Expression evaluation; Recursive descent parser; Stack parser; Parentheses in algebra; Operator precedence; Recursion; Unary minus and subtraction; ObStack data structure; Storing objects; Efficient string stack; Efficient string storage; Permutations |
A Delphi CGI File Uploader | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Paul Warren explains how to implement multipart form encoding in your CGI applications as an alternative to URL encoding and shows how we can use it to upload files to a web server from CGI applications. | ||
Keywords | CGI; Web applications; URL encoding; Multipart/form-data encoding; ENCTYPE; HTML forms; Uploading files with CGI; RFC 1867; Content-disposition; CGI unit; MIME, UU, Base64; Internet Explorer; Netscape Navigator 3 |
Beating the System: Deciphering The DCU, Part 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Dave Jewell starts unravelling the DCU compiled unit file format which is so crucial to Delphi's blazingly fast compilation speeds and gives us some pointers on how this knowledge can be used to good effect in your work. | ||
Keywords | Beating the System; DCU file format; Delphi compiler and linker; Compiled unit files; Packages; Dissassembling; Kibbitz; DCU version information; DCU compile date and time; Scanline update; TRGBQuadArray; Greyscaling a bitmap; Bitmap filters; File searching |
Under Construction: Nested Tables | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Bob Swart explains what TNestedTable is all about and how we can make use of it in multi-tier application development. | ||
Keywords | Under Construction; Nested tables; TNestedTable; Database; Nested dataset; BDE; Oracle 8 nested detail set; Master-detail relationships; Multi-tier applications; Master-detail and multi-tier; N-Tier; Provider component; TClientDataSet; DCOM; DataSetField |
Distributed Application Development With Packages | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Brian Long explains how Delphi's packages can do much more than you imagined: he shows how to create applications that you can enhance and upgrade simply by shipping extra packages, just like Delphi's IDE can be upgraded by adding in 'packaged' wizards, property editors and the like. | ||
Keywords | Packages; Distributed applications; Application plug-in modules; Extending applications; Plug-ins; Dynamic package loading; Design-time packages; Runtime packages; Installing components; Wizards and experts; Property editors; Component editors; RegisterComponents; RegisterNoIcon; RegisterPropertyEditor; RegisterLibraryExpert; ExptIntf unit; Customising tooltips; THintWindow; THintWindowClass; Archaeopteryx in Delphi 4; Delphi add-in packages; Loading, unloading packages; Tracking objects by address; Tracking objects by group; FreeEditorGroup; CurrentGroup; UnRegisterExpertGroup; LoadPackage; GetPackageDescription; Packages versus DLLs; Partitioning applications; Locate routine in a package; Name mangling; GetPackageInfo; Extender packages; Abstract classes; Object browser |
COM Corner: Microsoft Transaction Server, Part 2 | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Steve Teixeira completes his examination of using MTS in Delphi with a practical example for us to experiment with. | ||
Keywords | COM Corner; COM p[rogramming; MTS; Microsoft Transaction Server; MTS example application; Building MTS objects; MTS object wizards; TMtsAutoObject; Creating MTS applications; MtsObj unit; TAutoObject; Mtx unit; IObjectContext methods; Stateless objects; Resource dispenser; Shared property manager; ISharedPropertyGroupManager; Security in MTS; Installing an MTS server; Transaction Server Explorer; Debugging MTS applications; MTS package guid |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 46 : June 1999 | View article | No source code |
Summary | The tangled web we weave | ||
Keywords | One last compile... |
VCL Tab Question | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 46 : June 1999 | View article | View source code |
Summary | VCL Tab Question | ||
Keywords | HotTrack property; Tab caption font colour; Page controls; TPageControl |
DLL Question | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 46 : June 1999 | View article | View source code |
Summary | DLL Question | ||
Keywords | Using already loaded DLL; LoadLibrary; LoadLibraryEx; Inter-process communication; Shared memory; DLLs not globally available |
Incomplete Free | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Incomplete Free | ||
Keywords | Free method; Destroying objects; Set object variable to nil; Object references; Method types; Addresses and events; Object methods; Class methods; Event addresses |
Active OLE Object | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 46 : June 1999 | View article | View source code |
Summary | Active OLE Object | ||
Keywords | Active OLE object; CreateOleObject; GetActiveOleObject; EOleSysError; Calling automation server; OLE Automation; Single or multiple instance; RegisterActiveObject; Strong or weak registration; RevokeActiveObject; Cookie variable; CoLockObjectExternal; CoDisconnectObject; Automation server |
20 Rules For OOP In Delphi | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Marco Cant∙ suggests some simple rules for object oriented programming which will help you improve the structure of your applications and make them easier to both develop and maintain. Included are key recommendations on working with classes, components, forms, variables, properties and methods. | ||
Keywords | Object Oriented Programming; OOP; 20 rules for OOP; Program structure; Encapsulation; Forms classes not objects; Form classes; One class, one unit; Private and protected; Component naming; Event naming; Form methods; Custom form constructors; Global variables; Form1 and TForm1; Referring to global objects; Global form objects; Using form properties; Array properties; An OOP form wizard; Inheritance; Visual form inheritance; Using protected data; Designing methods |
Beating The System: Deciphering The DCU, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Dave Jewell continues his exploration of the DCU compiled unit file format which is so crucial to Delphi, this month unravelling more of the detailed record structures, discussing the numeric encoding scheme used and providing a framework for further research. | ||
Keywords | Beating the System; DCU file format; Compiled unit file DCU; Delphi compiler and linker; Include files $I directive; Object files; Resource files; Compiler timestamp data; Unit modification date/time; Numeric encoding in DCU; Encoding numbers; Free Pascal compiler; Pascal on Linux |
A Web Server Text Difference Engine | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Paul Warren builds on last month's CGI file uploader using multipart form encoding to create a web-server-based text file difference engine. | ||
Keywords | Text file difference engine; Web applications; CGI applications; Comparing text files; CGI component; CGI file uploads; Multiple file uploading; World wide web, internet |
Algorithms Alfresco: Date Stamp | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Julian Bucknall shows us easy and efficient ways to work with business dates, including business date arithmetic, with positively no Y2K problems! | ||
Keywords | Algorithms Alfresco; Business dates; Date arithmetic; Working days; TDateTime problems; Delphi 1 TDateTime; Gregorian dates; Leap year calculation; Date validation; EncodeDate; DecodeDate; Date encoding; Binary searching; For loop gotcha; For loop counter undefined; Breaking out of a for loop; Interpolation search; Day of the week; DayOfWeek; ShortDayNames; LongDayNames |
Under Construction: Creative Debugging Techniques | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Bob Swart explains the various debugging techniques available in Delphi, including remote debugging. | ||
Keywords | Debugging techniques; Under Construction; Remote debugging; Integrated debugger; $L $D compiler directives; Local symbols; Turbo Debugger; Turbo Assembler; Host application; Debugging DLLs; IntraBob for debugging; Debugging CGI applications; Debugging ISAPI and NSAPI; Debugging distributed apps; Debugging ActiveForms; Debugging N-Tier apps; borrdbg.exe; Debug Server |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 47 : July 1999 | View article | No source code |
Summary | Ask not for whom the clock ticks | ||
Keywords | One last compile... |
Working With The InterBase API | |||
---|---|---|---|
Authors | Paul Reeves | Type: Article | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Paul Reeves explains how to get the best out of the InterBase DBMS by programming directly to its API in your Delphi applications, distilling some key information from the hundreds of pages in the C-oriented API handbook to help us understand how InterBase works and obtain useful performance gains. | ||
Keywords | InterBase API; InterBase Express Components; Database server; DBMS; SQL database; gds32.dll; Network protocol; Transactions; Connecting to InterBase; Dynamic SQL; malloc() and ReallocMem; InterBase Result Set; Parameter blocks; InterBase error handling; Extended SQL descriptor area; XSQLDA |
COM Corner: Language Support For COM | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 47 : July 1999 | View article | No source code |
Summary | Steve Teixeira describes the support for COM programming built into the Delphi Object Pascal language, asking what does it mean to have these things built into the language, how do these features work, and what is the nature of their dependence on the COM APIs? | ||
Keywords | COM Corner; COM programming; Language support for COM; Object Pascal and COM; Variants; TVarData; OleVariant; VARIANT struct; oleaut32.dll; Variant arrays; SAFEARRAYs; Late binding; Early binding; IDispatch; _DispInvoke; VarDispProc; ComObj unit; VarDispInvoke; WideString; UNICODE; AnsiString; BSTR string type; SysAllocStringLen; Interfaces; IUnknown; QueryInterface; Dispinterface |
Invalid BLOb Handle | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Invalid BLOb Handle | ||
Keywords | Invalid BLOb handle; BDE error 10030 ($272E); BDE caching of BLObs; BLOBS TO CACHE value; 64 BLObs limit |
Object Etiquette | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Object Etiquette | ||
Keywords | Set object reference to nil; Nil after free; Disposing of objects |
Using Internet Explorer | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Using Internet Explorer | ||
Keywords | Using Internet Explorer; Internet Explorer ActiveX; shdocvw.dll; Microsoft Internet Controls; Automation and Explorer; IWebBrowserApp; Internet Explorer via COM; Calling Internet Explorer |
Temporary Internet Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 47 : July 1999 | View article | View source code |
Summary | Temporary Internet Files | ||
Keywords | Temporary internet files; Internet Explorer; desktop.ini; index.dat; UICLSID; SHDOCVW.DLL; IShellFolder interface; SHGetSpecialFolderLocation; Access recycle bin; IShellDetails |
XML: A Delphi Implementation | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 48 : August 1999 | View article | View source code |
Summary | David Baer introduces XML: a new technology for inter-application communication on a grand scale, which is destined to become a very important part of many developers' lives. David explains the background and provides code to enable your applications to generate XML. | ||
Keywords | XML; Inter-application comms; Extensible markup language; HTML; Data transfer; Internet; Document Type Definition DTD; XML parser; Internet Explorer 5; COM; XML entities; XML tags, elements; XML namespace; XML datatypes; PCDATA; CDATA; XML attributes; Generating XML in programs; Document Content Definition; DCD; XSchema; W3C; Document Object Model DOM; XML in Delphi; XML classes |
Beating the System:Deciphering The DCU, Part 3 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Dave Jewell has the last instalment for now of his current mini-series on the DCU compiled unit file format, which this month expands the net to cover Delphi 3, 4 and 5 files! | ||
Keywords | Beating the System; DCU compiled unit file; DCU file format; Delphi compiler; Delphi 5 |
Under Construction: Delphi Goes Dynamic | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Bob Swart discusses the dynamic creation of components and event handlers, with a fun little application to test out the techniques and keep your children amused too! | ||
Keywords | Under Construction; Create components at runtime; Dynamic creation of events; Dynamic event handlers; Create event handlers; Dynamic components; Constructor; Create method |
Algorithms Alfresco: Whirlpool | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Julian Bucknall unravels CRC algorithms this month (that's Cyclic Redundancy Check in case you were wondering...): just the ticket for error checking on data transfers and a whole lot more. | ||
Keywords | Algorithms Alfresco; CRC calculations; Cyclic Redundancy Check; Error checking; Checksum; Data transmission errors; Communications; Data compression; XMODEM; Hashing as a checksum; ELF Hash; Galois Field theory; CRC-16 and CRC-32; Modulo 2 arithmetic; Polynomial division; CRC-CCITT; AAL5 32-bit CRC |
Delphi Memory Consumption | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Brian Long explains why Delphi applications can sometimes have a surprisingly large memory footprint, even with a tiny EXE file, and comes up with some clever ways to bring it back down to manageable proportions. | ||
Keywords | Application memory use; Program memory use; Memory consumption; Show memory use in Delphi; -HM command line switch; OLE32.DLL and OLEAUT32.DLL; GetMem, AllocMem; GetProcessWorkingSetSize; VirtualQuery; Application working set size; GetSystemInfo; Committed memory; System.AllocMemCount; System.AllocMemSize; GetAllocMemCount; GetAllocMemSize; DelphiMM unit; FindCmdLineSwitch; Command line switches; -HV command line switch; Delphi heap error checking; GetHeapStatus; THeapStatus; Reducing memory use; Used DLLs; Remove DLL dependency; Registry; LoadResourceModule; Delayloading of DLLs; OLE Automation; VariantClear; Variants; System.VarClear |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 48 : August 1999 | View article | No source code |
Summary | I'll have Mr Forsyth's latest, please | ||
Keywords | One last compile... |
COM Corner: Top 10 ActiveForm Questions | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Steve Teixeira sorts out your problems in developing and deploying ActiveForms, including: differences over ActiveX, design and security considerations, properties, web deployment, keystrokes, databases, working with the browser and using data files | ||
Keywords | COM Corner; COM programming; ActiveForm development; ActiveForm and ActiveX; What are ActiveForms; TActiveFormControl; ActiveForm security; Using ActiveForms; Web-delivered ActiveForms; Deploying ActiveForms on web; Properties in ActiveForms; Required DLLs; IPersistPropertyBag; TActiveXControl; Keystroke handling; TranslateAccelerator; Databases and ActiveForms; Interfacing with web browser; HLinkNavigateString; HLinkGoForward; UrlMon unit; URLDownloadToFile; Open file in ActiveForm |
Resource Strings And Internationalisation | |||
---|---|---|---|
Authors | Patrik Wang | Type: Article | |
Issue | 48 : August 1999 | View article | No source code |
Summary | Patrik Wang explains how to use Delphi's resource string capabilities to provide simple and effective internationalisation for your applications, including translation of strings embedded in the VCL | ||
Keywords | Resource strings; Internationalization; Internationalisation; Localisation; Localization; LoadString; Storing strings in resources; String constants |
Explorer Dialog Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Explorer Dialog Problem | ||
Keywords | TOpenDialog; Hidden files in TOpenDialog; Windows Explorer |
Home Grown SQL Monitor | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Home Grown SQL Monitor | ||
Keywords | SQL Monitor; Monitoring SQL statements; Building an SQL monitor; SQL trace in applications; TBDECallback; Callbacks; cbTrace callback type; FSQLTraceCallback |
Windows Miscellany | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 48 : August 1999 | View article | View source code |
Summary | Windows Miscellany | ||
Keywords | Windows hints and tips; Windows shortcut keys; Windows key |
Inprise/Borland Conference | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 49 : September 1999 | View article | No source code |
Summary | Bob Swart reports from the 10th Annual Borland Conference | ||
Keywords | Borland Conference Report; Inprise Conference 1999 |
The Factory Pattern | |||
---|---|---|---|
Authors | Peter Hinrichsen | Type: Article | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Peter Hinrichsen describes a real-world example that demonstrates how the factory pattern can save you time and make your code more maintainable and extensible | ||
Keywords | Factory pattern; Design patterns; Code maintainability; Code reuse; Creational pattern; Creating objects; Object of unknown class; Set object class at runtime; Selecting a report to run; Complex if then else; Complex if..tehn..else; Procedural programming; Class-reference types; Class of...; Call create; Inherited create; Poor man's singleton pattern; Abstract factory; Concrete factory |
Algorithms Alfresco: Knock on Wood | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Julian Bucknall runs through the basics of binary trees, in preparation for next month's Gold Issue Special on red-black binary trees. Fasten your seat belts. | ||
Keywords | Algorithms Alfresco; Binary trees; Binary search trees; Linked list as a tree; Searching; Data structures; Stack class; Binary tree traversal; Balanced tree; Generating EPS files; Encapsulated PostScript; Writing PostScript |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 49 : September 1999 | View article | No source code |
Summary | Ladies and gentlemen, I present to you, in the blue corner: Delphi 5! | ||
Keywords | One Last Compile... |
A Better Build Process | |||
---|---|---|---|
Authors | Primoz Gabrijelcic | Type: Article | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Primoz Gabrijelcic has created a methodology and toolset to allow him to easily create debug and release builds of his application suites, with automated incrementing of version information too, all from the command line. | ||
Keywords | Building a project; Command line utilities; Compiling in the IDE; Release and debug builds; Build process; Command line compiler; Version information; VERSION resource; DCC32.EXE; dcc32.cfg; Project configuration file; Project options settings; BRCC32.EXE; Resource compiler; Project settings file (.DOF); Batch files; Help compiler; Include file from help; Help project file (.hpj); EXE compresssor |
Under Construction: Distributed Efficiency | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Bob Swart finds that for today's distributed applications optimisation means much more than speeding up a slow but frequently used routine. This month he shows how we can measure the amount of data transfer going on and then minimise it to improve response | ||
Keywords | Under Construction; Optimisation and efficiency; Distributed applications; Minimising network traffic; Web applications; TClientDataSet; Distributed computing; TDataSetProvider; CORBA, COM, DCOM; OLEnterprise; Middleware; TDCOMConnection; Monitoring data transfer; Tuning; TClientDataSet.PackedRecords |
Beating the System: When Worlds Collide | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Dave Jewell battles with Microsoft's common controls implementation: treeviews, toolbars, listviews and header controls | ||
Keywords | Beating the System; Common controls DLL; COMCTL32.DLL; TTreeView; TToolbar; TListView; Delphi 5 and common controls; Custom draw; Owner draw problems; THeaderControl; hsOwnerDraw; OnDrawSection; Outlook Express style; OnCustomDraw; OnAdvancedCustomDraw; NM_CUSTOMDRAW; WM_DRAWITEM; LBS_OWNERDRAW |
Porting KillerApp | |||
---|---|---|---|
Authors | Andrew McLellan | Type: Article | |
Issue | 49 : September 1999 | View article | No source code |
Summary | The time has come for you to port your applications to Delphi 5. But don't despair, Andrew McLellan has been through the version upgrade pain many times before and has just the right procedure for you to follow. | ||
Keywords | Porting to Delphi 5; Porting apps to new version; Upgrading to Delphi 5; Compatibility issues |
ADO Support In Delphi 5 | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 49 : September 1999 | View article | No source code |
Summary | Guy Smith-Ferrier explains the support for ActiveX Data Objects introduced in Delphi 5 and shows how to get the best from it, which tools support it and which don't, plus porting from the BDE. | ||
Keywords | ADO in Delphi 5; ADO Express; ActiveX Data Objects; TADOTable; ConnectionString; Using ADO in Delphi 5; MDAC 2.1; ADO 2.1; MDAC SDK 2.0; Data Access Components; MDAC SDK 2.1 update; ADO version history; BDE versus ADO; TADOConnection; IsolationLevel; OLE DB providers; Data link files; OpenSchema; ADO transactions; ADO datasets; Utilities and tools for ADO; ADOX, ADOMD, JRO; ADO Multi-Dimensional; OLAP and ADO; Replication |
COM Corner: Creating Office 2000 COM Add-Ins | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Steve Teixeira says Office add-ins are fun as well as providing an excellent way to integrate your application with Microsoft's suite. | ||
Keywords | COM Corner; Office 2000 COM add-ins; Creating Office add-ins; Microsoft Office 2000; IDTExtensibility2; ConnectMode; OnConnection; OnDisconnection; OleVariant; safearray; Registering an Office add-in; MSADDNDR.TLB; Import tyle library; Events in Office add-ins; TAutoObjectFactory; Debugging COM add-ins |
Character Manipulation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Character Manipulation | ||
Keywords | Character manipulation; Ord; Char; Get ANSI value of character |
SQL Server Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | SQL Server Problem | ||
Keywords | SQL Server login; Locale settings; Syntax error converting date |
DCOM UI Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | DCOM UI Problem | ||
Keywords | DCOM configuration; Restart Windows dialog; DCOMCNFG.EXE |
Daylight Savings Changeover | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Daylight Savings Changeover | ||
Keywords | Daylight savings changeover; When does clock change?; GetTimeZoneInformation; TTimeZoneInformation; Co-ordinated Universal Time; UTC time; TSystemTime; wDayOfWeek |
Terminating Programs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Terminating Programs | ||
Keywords | Terminating programs; ShellExecute; FindWindow; PostQuitMessage; TerminateProcess; CreateProcess; ShellExecuteEx; WinExec; Running external program; Terminating external program; see_Mask_NoCloseProcess; fMask; hProcess; EnumThreadWindows; Getting a window handle; EnumWindows; GetWindowThreadProcessID; PROCESS_TERMINATE; WaitForSingleObject; SendMessageTimeout |
Computer Name In Registry | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | Computer Name In Registry | ||
Keywords | Computer name in registry; Find computer name; TRegistry.RootKey; Windows NT |
New Delphi 5 Features | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 49 : September 1999 | View article | View source code |
Summary | New Delphi 5 Features | ||
Keywords | Delphi 5 features; DsgnIntf unit; Font names display; ImageIndex properties; Fontname properties; Automatic hotkeys; AutoHotKeys; RethinkHotKeys; MenuAnimation; Popup menu animation; AutoLineReduction; RethinkLines; GetOrdProp, SetOrdProp |
Data-Aware HTML Controls, 1 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Steve Troxell has developed a really neat way to generate web pages with content driven from databases, using markup codes in HTML pages, so website designers with no programming or database skills can easily create database-driven websites. | ||
Keywords | HTML; Web applications; Internet; SQL; Payroll and human resources; Data-aware HTML; Database web apps; Web page authoring; Markup languages; Application server; Templates; CGI; Parsing; Encapsulation; ASP, Java Server Pages; XML; Tags; XML parsers; CUEsoft XML parser; Document Object Model DOM; DOM class; Generating HTML; Hidden HTML fields |
Under Construction: Delphi 5 InternetExpress | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 50 : October 1999 | View article | No source code |
Summary | Bob Swart describes Delphi 5's InternetExpress, which combines WebBroker and MIDAS technologies, producing HTML and XML for ultra-thin clients. And as it's Dr.Bob, you can be sure he explains it step by step. | ||
Keywords | Under Construction; InternetExpress; Delphi 5; WebBroker; MIDAS; HTML; XML; 4-Tier applications; Stateless MIDAS; Middleware; Creating a MIDAS server; Remote data module; Data Module Designer; Master-detail relationship; DataSetProvider; Field Link Designer; WebConnection; XMLBroker; MidasPageProducer |
Delphi Junction | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 50 : October 1999 | View article | No source code |
Summary | A crossword puzzle from David Baer | ||
Keywords | Delphi Junction crossword |
Localising With Delphi 5 | |||
---|---|---|---|
Authors | Marco Cant∙ | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | how we can make the most use of it. Marco Cant∙ unravels the localisation capability in Delphi 5 and explains | ||
Keywords | Localising with Delphi 5; Localisation, localization; Localizing; Internationalisation; Integrated Translation ITE; Delphi 5; Resource DLL Wizard; Delphi Translation Pack; resourcestring; Translation Manager; Translation Repository; Translating strings; Todo list bug; Translating VCL strings; Dynamic language loading; RichEdit |
Beating the System: Delphi Code Generation Hints | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 50 : October 1999 | View article | No source code |
Summary | Dave Jewell provides insights into how Delphi generates its code, with handy pointers on FOR loops, optimisation tips and syntactic short cuts. | ||
Keywords | Code generation; FOR loops; Control variable undefined; FOR loop counter; Pascal language; Result variable; Function result; Break and goto; Optimisation; const qualifier; Functions and procedures; Passing strings; Stack frame; Reference counting; Free; Initialising variables; InitInstance; Object member fields; Showing modal forms |
Win32 Inter-Process Communication | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Brian Long gives us a thorough tutorial on getting applications to talk to each other and exchange data, even over a network. Brian explains all those fiddly API calls, with easy-to-use code. | ||
Keywords | Inter-process communication; IPC; Communicating between apps; Win32; 32-bit Windows; Windows messages; Message handling; Sending messages to apps; Window handle; WParam and LParam; PostMessage; SendMessage; Window procedure WndProc; Queued messages; Application.ProcessMessages; Message urgency; HWnd_Broadcast; Broadcasting messages; Send message to all windows; BroadcastSystemMessage; BroadcastSystemMessageA; RegisterWindowMessage; Registering custom messages; FindWindow; Finding window handle; Windows Atom; wm_CopyData message; Sending data with messages; TCopyDataStruct; Mailslots; Send message over a network; Mailslot server; Mailslot client; CreateMailslot; SetMailslotInfo; GetMailslotInfo; Writing to a mailslot; Anonymous pipes; Named pipes; CreatePipe; CreateNamedPipe; Named pipes Windows NT only; Memory mapped files; File mapping; File view; CreateFileMapping; Named shared memory; Mutex |
Algorithms Alfresco: Red Alert | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Julian Bucknall explains red-black binary trees: what they are, how to use them and what benefits they give. | ||
Keywords | Algorithms Alfresco; Red-black binary trees; Data structures; Binary search trees; Balanced trees; Tree balancing algorithms; Splay tree; Zi-g-zag and zig-zig; AVL trees |
XML: A Delphi Implementation, 2 | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | David Baer continues his series on using XML in Delphi (continuing from the August issue). As promised, this time David shows how to hook up his XML classes to an XML parser. | ||
Keywords | XML in Delphi; XML class framework; DCDs; DTDs; XML Data Reduced; XML schemas; XML parsers; Document object model, DOM; Simple API for XML, SAX; msxml.dll; Microsoft XML parser; UTF-8 encoding; Standalone XML; XML processing instruction; Tree view of XML |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 50 : October 1999 | View article | No source code |
Summary | An artist and his palette. | ||
Keywords | One Last Compile... |
Exceptional Stack Tracing | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Hallvard Vassbotn shows how to find what bug in your code causes those pesky exceptions: yes, even access violations. Why be content with an error address which refers to code buried deep in the VCL or RTL when you can get straight to the offending line! | ||
Keywords | Stack tracer; Find causes of exceptions; Causes of access violations; Debugging; Exception stack tracing; Hook exception handling; Application.OnException; EAccessViolation; Hooking exceptions; Hardware exceptions; DL import address table, IAT; Executable file format; ImportDescriptor table; Thunking of system DLL; Windows 95; GetProcAddress; Kernel32.RaiseException; Stack frames; Runtime location information; RTLI; MAP files |
COM Corner: New COM Features In Delphi 5 | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Steve Teixeira has all the information. | ||
Keywords | COM Corner; COM programming; COM in Delphi 5; Active Server Objects; ASP Active Server Pages; VBScript and JScript; TASPObject; COM Server components; Microsoft Office; Automation with Office; Type library updates dialog; HResult in Delphi 4 and 5 |
Property Editor Question | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Property Editor Question | ||
Keywords | Property editors; Class name of object; TPropertyEdit; GetComponent |
Page Control Query | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Page Control Query | ||
Keywords | Active tab in TPageControl; ActivePageIndex; ActivePage; TTabSheet |
Customised Alias | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Customised Alias | ||
Keywords | Customised Alias; Database alias at runtime |
Customised Status Bar | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Customised Status Bar | ||
Keywords | Status bar panel colour; TStatusPanel; psOwnerDraw; OnDrawPanel |
COM Server Components | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | COM Server Components | ||
Keywords | Delphi 5 COM servers; COM server components |
Fancy Font Dialog | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Fancy Font Dialog | ||
Keywords | Custom font dialog; TFontDialog events |
Multi-User Delphi Installation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Multi-User Delphi Installation | ||
Keywords | Multi-user Delphi install; User settings in registry; HKEY_CURRENT_USER |
Components On The Clipboard | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Components On The Clipboard | ||
Keywords | Components on clipboard; Clipboard.Setcomponent; Multiple components; Customs clipboard formats; Clipbrd unit; CF_COMPONENT; CF_COMPONENTS; TMemoryStream; Copy components on clipboard |
Custom TLabel Component | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Custom TLabel Component | ||
Keywords | Custom TLabel; OnMouseMove; Label changes mouse enters; cm_MouseEnter; cm_MouseLeave; Message handling; Hyperlink labels |
User-Defined Exceptions | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | User-Defined Exceptions | ||
Keywords | User-defined exceptions; Exception class; Redefining Exception |
More On Active OLE Object | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | More On Active OLE Object | ||
Keywords | Active OLE object; DCOM; NT Services; CreateRemoteCOMObject |
Delphi 5 Easter Eggs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 50 : October 1999 | View article | View source code |
Summary | Delphi 5 Easter Eggs | ||
Keywords | Delphi 5 Easter Eggs |
Safecall Defined | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Brian Long explains Delphi's safecall reserved word in depth, showing its work in handling exceptions in your COM and Automation applications | ||
Keywords | SAFECALL; Exception handling; COM and Automation errors; Environment options dialog; Exceptions in DLLs; COM error objects; ICreateErrorInfo; STDCALL; ISupportErrorInfo; HResult; Type library; S_OK and E_UNEXPECTED; Accessing HResult; Hardware exceptions; Unexpected failure exception; Safecall function mapping; SafeCallException; HandleAutoException; SafeCallErrorProc; CheckAutoResult; SysUtils unit; Runtime error 229; IServerExceptionHandler; Error logging; Access violation |
Beating The System: Taming the File System, 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Here's a shock: Dave Jewell is just a tiny bit jealous of Visual Basic programmers! The reason? The FSO (File System Library), which gives easy access to all kinds of information about the Windows file system. So this month he sets out to put matters right by building his very own 100% pure Delphi file system class | ||
Keywords | Beating the System; File system class; FSO object model; File system library; Visual Basic; Microsoft Scripting Runtime; SCRRUN.DLL; TFileSystemObject; Drive types; Installed drives; Fixed and removable drives; Is drive ready; Disk space free; Disk size; GetDiskFreeSpaceEx; DiskFree; Drives over 2Gb size; Network drive disk quota; Drive available space; Disk volume name; FAT file system; Disk serial number |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 51 : November 1999 | View article | No source code |
Summary | If I had a hammer. | ||
Keywords | One Last Compile... |
Remote Monitoring | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Paul Warren has found a neat way to monitor the output of an expensive instrument control and data acquisition package on an intranet, using a web technique called client pull | ||
Keywords | Remote equipment monitoring; Instrument monitoring; Data acquisition; Web animation; Server push; Client pull; GetDC and GetWindowDC; Device context; Make bitmap of window; Convert bitmap to JPEG; FileWrite; Refresh HTML META tag; http-equiv; SetForegroundWindow; RedrawWindow |
Under Construction: Delphi 5 InternetExpress, 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Bob Swart continues his exploration of Delphi 5's InternetExpress technology. This month, Bob discusses how to limit the amount of data being sent from the server to the browser, how to handle reconcile errors, and even how to use the technology without using a MIDAS licence | ||
Keywords | Under Construction; InternetExpress Delphi 5; Optimisation; Reconcile errors; MIDAS; WebConnection; XMLBroker; MidasPageProducer; DataSetProvider; TSession.AutoSessionName; Multi-user database; ADO; Visual Data Module Designer; ADOTable; TClientDataset; MIDAS 3 is stateless; Limiting number of records; OnBeforeGetRecords; JavaScript; XML packets; OnBeforeScroll; Posting record edits; ApplyUpdates; Database update conflicts; Reconcile error dialog; HandleReconcileError; TReconcilePageProducer; MIDAS licensing |
Delphi Junction: Solution | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 51 : November 1999 | View article | No source code |
Summary | The solution to last month's crossword puzzle. See how you got on! | ||
Keywords | Delphi Junction crossword; Crossword solutuion |
Algorithms Alfresco: Re-Make, Re-Model | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Julian Bucknall investigates Delphi's floating point support, with the full low-down on which floating point types to use, warnings on their limits of accuracy, and tips on how to dramatically improve the efficiency of your floating point calculations | ||
Keywords | Algorithms Alfresco; Floating point variables; Floating point types; Efficiency and optimisation; real type; single type; double type; extended type; comp type; IEEE floating point types; FPU hardware; Floating point numbers; Floating point inaccuracy; Mantissa and Exponent; Exponent bias; Not a number; Typecast single as longint; absolute qualifier; Floating point optimisation; Optimization; Aligning doubles; Align to word boundary; Trunc and Round; Constant folding |
The Observer Pattern | |||
---|---|---|---|
Authors | Peter Hinrichsen | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Peter Hinrichsen has more advice on making the most of design patterns in Delphi. This time round, he elucidates the observer pattern, whose intent is (to quote the Gang of Four): 'to define a one-to-many dependency between objects so that when one object changes state, all its dependants are notified and updated automatically'. Lots of practical real-world stuff here | ||
Keywords | Observer pattern; Design patterns; Software design; Code reuse; Application framework; Object Oriented design; Business object model; UML; Singleton pattern; Push and pull observers |
COM Corner: Efficient Variants | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Steve Teixeira has been feeling sorry for the poor neglected Variant type. He feels it's got a bad press as being an inefficient way to do Automation. To set things straight he's come up with a great way to get efficient Variants, through the use of dispid caching. The result? Significant speed improvements. | ||
Keywords | COM Corner; Efficient variants; Automation; COM programming; Variant type; Early and late binding; Interface and dispinterface; ID binding; IDispatch.Invoke; GetIDsOfNames; Caching Dispids; Cache; VarDispInvoke; VarDispProc; Optimisation |
File I/O Error | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 51 : November 1999 | View article | View source code |
Summary | File I/O Error | ||
Keywords | File i/o errors; Error 32; EInOutError.ErrorCode; ERROR_SHARING_VIOLATION; Error codes; SysErrorMessage |
Type Library Corner Cutting | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Type Library Corner Cutting | ||
Keywords | Type library corner cutting; Using type library; Registering a type library; Type library editor |
Customised Docking | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 51 : November 1999 | View article | View source code |
Summary | Customised Docking | ||
Keywords | Customised docking; ManualDock; UseDockManager; Grabber lines; TDockTree; AdjustDockRect; PaintDockFrame |
CreateProcess Alert | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 51 : November 1999 | View article | View source code |
Summary | CreateProcess Alert | ||
Keywords | CreateProcess resource leak; TProcessInformation; Reference counting; ShellExecuteEx; Launching an application; Run external program |
Data-Aware HTML Controls, 2 | |||
---|---|---|---|
Authors | Steve Troxell | Type: Article | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Steve Troxell concludes his two-part article on data-aware HTML controls: a neat and easy way to generate web pages with content driven from databases, using markup codes in HTML pages, so website designers with no programming or database skills can easily create database-driven websites. | ||
Keywords | Web, internet; HTML; Active web pages; CGI applications; Web applications; Markup language engine; Data-driven web pages; Dynamic websites; XML parser; Data-aware HTML; Database; JavaScript; HTTP; COM object |
Under Construction: Delphi 5 InternetExpress, 3 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 52 : December 1999 | View article | No source code |
Summary | Bob Swart continues his coverage of Delphi 5's InternetExpress, which combines WebBroker and MIDAS technologies, producing HTML and XML for ultra-thin clients. | ||
Keywords | Under Construction; Delphi 5 InternetExpress; Web applications; Internet applications; World wide web; WebBroker, MIDAS, XML; HTML; Web Editor components; Custom components; Debugging InternetExpress; Master-detail relations; XMLBroker; Data-driven web apps; TADOTable; ADO; TADOConnection; Custom InternetExpress; MidasPageProducer; Missing data provider; XMLDataSetField bug; IntraBob 5.0; Web application debugging; ISAPI debugging; MIDAS licensing |
TRichEdits And Embedded Objects | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Brian Long demonstrates how the standard Windows rich edit control, encapsulated in Delphi's TRichEdit component, can be used to display bitmaps through the wonders of OLE. | ||
Keywords | TRichEdit; Embedding objects; Graphics in TRichEdits; Rich text; Bitmaps in rich text; OLE objects; IRichEditOLECallback; em_SetOleCallback; safecall and stdcall; TInterfacedObject; CreateIBytesOnHGlobal; StgCreateDocfileOnILockBytes; IStorage; IOleInPlaceFrame; OleCtnrs unit; TOleInPlaceFrameInfo; IVCLFrameForm; GetVCLFrameForm; OleFormObject; In-place editing; Editing OLE object |
Beating the System: Taming The File System, 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Dave Jewell continues development of his own Delphi encapsulation of the file system: easy to use, deploy and extend in any way you like! This month he covers folder navigation, tree walking and more. | ||
Keywords | Beating the System; File system class; Directory navigation; Folders and directories; Encapsulate file system; Relative pathnames; Check if directory exists; How to use FileClose; FileCtrl unit; Scanning directories; Walk directory tree; FindFirst and FindNext; faDirectory attribute; Archive attribute; Total size of directory tree; Sum file sizes |
ADO Transaction Processing | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Guy Smith-Ferrier unravels the intricacies of using ADO for transaction processing: comparing it to the Borland Database Engine's transaction support and covering topics such as nested transactions, cursors, transaction isolation levels and more. | ||
Keywords | ADO transaction processing; ActiveX Data Objects; Database applications; TADOConnection; TDatabase for BDE; IDAPI; Transaction DDL property; Data definition language DDL; DML; Nested transactions; Fake nesting SQL Server 6.5; TXactAttributes; xaCommitRetaining; xaAbortRetaining; ADO datasets; Inner and outer transactions; Cursor types; Cursor locations; Lock types; CursorLocation; Client-side cursor; Server-side cursor; Client Cursor Library; CursorType; Transaction isolation; ilCursorStability; Dirty reads; Non-repeatable reads; Phantoms |
Algorithms Alfresco: Hark the Herald Angels Sing | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Julian Bucknall had a shock when flying back home to Colorado from DCon 99. He shares the results of a conversation with a strange bearded red-suited gentleman with us here, covering juicy little tidbits like bitsets, spell checkers, Soundex, long string gotchas and more. | ||
Keywords | Algorithms Alfresco; Unique list of numbers; TList; Bit set, Bitset; Setting bits; Bitsets in database queying; Bitsets as indices, indexes; Long strings; Reference counting; Store long strings in TList; Pointers; How long strings work; Copy on write semantics; Typecasting; Random selection; Select 10 items from 100; Spell checker; Spelling check; Phonetic, Soundex; Sounds like; Phonetic dictionary; Hash tables; Binary search; ELF hash function |
Serving Up The Registry | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 52 : December 1999 | View article | View source code |
Summary | David Baer develops an easy-to-use Windows registry component, with insights into the registry and into component development. Features include easy saving and restoring of form size and location and, of course, minimal coding. | ||
Keywords | Windows registry; Registry component; Registry access; TRegistry; Registry keys; Stoing form size, location; File history lists; Simple hex file viewer; Hexadecimal; Saving form location; Using TCollection; Aggregate properties; TCollectionItem |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 52 : December 1999 | View article | No source code |
Summary | Nothing was stirring, not even a wheely-mouse. | ||
Keywords | One Last Compile... |
COM Corner: An Introduction to COM+ | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 52 : December 1999 | View article | No source code |
Summary | Steve Teixeira brings us a foretaste of how COM will look in Windows 2000. | ||
Keywords | COM Corner; COM programming; COM+ Introduction; COM plus; Windows 2000; OLE 2.0; MTS; MSMQ; Microsoft Transaction Server; Microsoft Message Queue; COM+ services; COM+ transactions; DTC; COM+ security; Role-based security; Just-in-time activation, JIT; SetComplete, SetAbort; IObjectContext; SetDeactivateOnReturn; IContextState; Queued components; Object pooling; IObjectControl.CanBePooled; COM+ events; Connection points model; Per-method-level; Load balancing; In-memory database; TSPM; Registration database, RegDB; Neutral threading model; Thread neutral apartment TNA; Microsoft Management Console; MMC |
TWebBrowser Documentation Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | TWebBrowser Documentation Problem | ||
Keywords | TWebBrowser documentation; Postdata; ActiveX Internet Explorer; Create a web browser; Web browser ActiveX; BeforeNavigate2; Variant arrays; Web server application; OleVariant |
Local Share Requirement | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Local Share Requirement | ||
Keywords | Set Local Share in code; BDE; Paradox file corruption; Local Share and Paradox |
Computer Picker | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Computer Picker | ||
Keywords | Select computer on network; Computer name; Browse computer name; TDCOMConnection; DCOM; TSocketConnection; TComputerNameProperty; SHBrowseForFolder |
Form Painting Puzzle | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Form Painting Puzzle | ||
Keywords | Form painting; Event handlers; Application.ProcessMessages; Windows messages; Message handling; ProcessMessage; Message queue |
Dual Processor Woes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Dual Processor Woes | ||
Keywords | Dual processor problems; Symmetric Multi-Processing; SMP; Multiple processors; Threading; String reference counting; Threading bugs; Debugging threading; Threading model |
What? More Easter Eggs? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | What? More Easter Eggs? | ||
Keywords | Easter Eggs in Delphi 5; Easter Eggs in C++Builder 4 |
Corrections | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 52 : December 1999 | View article | View source code |
Summary | Corrections | ||
Keywords | TCustomLabel correction; Hyperlink label correction; Daylight savings correction |
Data Modules: Friend Or Foe? | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | Guy Smith-Ferrier starts an occasional series of articles designed to address some more basic issues that maybe we all ought to know about but which somehow slipped through the net... This month, he discusses the pros and cons of Data Modules, along with common problems (and solutions!). | ||
Keywords | Data modules; Database applications; Data module problems; Reusing data modules; MDI applications; Updating record pointers; Multiple data modules; AddDataModule; TDataModule; RemoveDataModule; Data module name; Chained data modules; Data modules in IDE; Unknown database error; Business logic; Reusing business rules |
Algorithms Alfresco: Midnight Run | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | Julian Bucknall shows us how to go about solving unsolvable problems, using simulated annealing. Along the way he covers two classic computer science problems: the travelling salesman and the knapsack. | ||
Keywords | Algorithms Alfresco; NP-complete problems; Simulated annealing; Polynomial time; Knapsack problem; Travelling salesman problem; Intractable problems; Unsolvable problems; Boltzmann distribution; Probability; Find highest hill |
A Delphi Multicaster Class | |||
---|---|---|---|
Authors | Max Rahder | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | A multicaster allows many objects to listen for and detect events. Max Rahder presents a Delphi implementation of a multicaster class. | ||
Keywords | Multicaster class; Listen for events; Detect events; Event handling; Singlecaster; Multiple event handlers; Event notification; Method references; Broadcasting |
Under Construction: Delphi 5 WebBroker Stuff | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | Bob Swart discusses the enhancements made to the WebBroker framework in Delphi 5, with a very handy utility to implement and log rotating advertising banners on your website. | ||
Keywords | Under Construction; WebBroker; Delphi 5; InternetExpress components; Web modules; HTTPApp unit changes; WebBroker unit; WebBroker problems; DB Web App Wizard; Rotating banners; Advertising banners; Bitmap image; Internet applications; Web applications; Internet ContentType; HTML; CGI, ISAPI; image/gif ContentType; Website redirection; MidasPageProducer; HTML editor; Checkbox component; WebDispatcher bug; WebBroker Delphi 5 bugs |
The Observer Pattern Observed | |||
---|---|---|---|
Authors | Tomasz Stanczak | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | Tomasz Stanczak has more insights into the observer pattern, based on experience with a large and complex real-life project. | ||
Keywords | Obrserver pattern; Design patterns; Push and pull models |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 53 : January 2000 | View article | No source code |
Summary | Used and Abused | ||
Keywords | One Last Compile |
Beating the System: Windows 2000, Are You Getting Certified? | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 53 : January 2000 | View article | No source code |
Summary | Dave Jewell gives us the low-down on what we need to know about for Windows 2000 from a software development perspective. | ||
Keywords | Beating the System; Windows 2000 API; Windows 2000 certification; Windows installer; MSI; Windows 2000 logo; Application migration; Registry; Migration DLL; MEI; Migration Extension; System File Protection SFP; PROTECTED_FILE_DATA; SfcIsFileProtected; OnNow and ACPI; Power management; SetThreadExecutionState; Operating systems |
XML in Delphi, 3 | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | David Baer is back with Part 3 of his popular series on using XML in Delphi. | ||
Keywords | XML; XML class framework; Document Object Model DOM; DOM node type; MSXML DLL; Document fragment node type; XML data type conversions; ISO date and time; XML Data; XML patterns; Pattern specification MSXML; Extensible Stylesheet XSL; Pattern selection |
COM Corner: CoPourri | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 53 : January 2000 | View article | View source code |
Summary | This month, Steve Teixeira has answers to a selection of readers' questions on common COM programming problems. | ||
Keywords | COM Corner; COM programming; Readers' questions; Is component in design mode; Is component in runtime mode; Design-time or runtime; ActiveX; IOleClientSite; IOleObject.GetClientSite; IAmbientDispatch; AxCtrls unit; UserMode for ActiveX; UserMode limitations; Multiple IDispatch interface; Early and late binding; Running Object Table ROT; GetActiveObject; RegisterClassObject; Registering with ROT |
Update: Safecall Defined | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 53 : January 2000 | View article | No source code |
Summary | Brian Long has more information on the safecall directive. | ||
Keywords | Update on safecall defined; Safecall directive; HResult return code; EOleSysError |
QuickReport And Printers | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 53 : January 2000 | View article | View source code |
Summary | QuickReport And Printers | ||
Keywords | QuickReport and printers; Selecting printer; TQuickRep.PrinterSettings; PrinterIndex |
File Copying | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 53 : January 2000 | View article | View source code |
Summary | File Copying | ||
Keywords | File copying; CopyFile; FMXUtils unit; File copy using streams; File copy animation dialog; Animated progress dialog; Select directory; SHBrowseForFolder; SHFILEOPSTRUCT; SHFileOperation; CopyFileEx; Callbacks |
ActiveX Warning | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 53 : January 2000 | View article | View source code |
Summary | ActiveX Warning | ||
Keywords | ActiveX security warning; Using ActiveX control on web; Signed ActiveX; InternetExplorer; Code signing; Authenticode; Verisign and GTE |
Custom Error Strings From DLL Routines | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 53 : January 2000 | View article | View source code |
Summary | Custom Error Strings From DLL Routines | ||
Keywords | Custom error strings in DLLs; Writing DLLs; GetLastError, SetLastError; SysErrorMessage; RaiseLastWin32Error; EWin32Error; Win32Check; Message-table resource; Resource DLL; Message Compiler utility; Message-table in DLL |
Update To File I/O Error | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 53 : January 2000 | View article | View source code |
Summary | Update To File I/O Error | ||
Keywords | Update to file i/o error; Windows error codes; Net help command |
ADO Batch Updates | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Guy Smith-Ferrier shows how ADO's batch updates compare to the BDE's capabilities, explaining how to use batch updates and how they form a pre-requisite for disconnected recordsets, single tier applications and Remote Data Services. | ||
Keywords | ADO batch updates; BDE cached updates; BDE TClientDataset; Disconnected recordsets; Single tier applications; Remote Data Services; ADOExpress; TADODataset; UpdateBatch; LockType; ltBatchOptimistic lock type; CancelUpdates; CancelBatch; UpdateStatus; FilterGroup; Database update conflicts; upWhereChanged; Simultaneous updates; ADO Errors occurred; OnRecordChangeComplete; ADO master/detail; Data Shape Provider; ADO Auto-increment fields; Auto incremented; Access AutoNumber |
Algorithms Alfresco: Private Eyes | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 54 : February 2000 | View article | View source code |
Summary | So you want to be a spy? Julian Bucknall introduces encryption, its background and terminology, and then describes some of the classic encryption techniques. | ||
Keywords | Algorithms Alfresco; Encryption; Cryptography; Cipher; Decryption; Plaintext and Ciphertext; Key or password; DES data encryption standard; Public key; Digital signature; Signed packages; Verisign; Cryptanalyst; Cryptanalysis; Substitution cipher; Caesar cipher; ROT13 cipher, Unix; Mono-alphabetic cipher; Vigenere cipher; Polyalphabetic substitution; Giovan Batista Belaso; XOR cipher; Windows CE ActiveSync; One time pad (one-time); Transposition cipher; ADFGVX cipher; ENIGMA machine; Rotor machine; Bletchley Park; Alan Turing; The Bombe |
Under Construction: VisiBroker for Delphi 5 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Bob Swart discusses VisiBroker for Delphi 5. | ||
Keywords | Under Construction; Visibroker for Delphi 5; CORBA; IDL; Type Library; IDL2Pas; Convert IDL to Pascal; Dynamic interface invocation; DII; Interface Repository; CORBA exceptions |
Beating the System: Taming The File System, 3 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Dave Jewell continues building his Windows file system object, this month adding in support for file change notifications before calling it a day (for now). | ||
Keywords | Beating the System; File system object; File system classes; Waking directory tree; FindNext infinite loop; FindFirst; File change notifications; ShChangeNotify; FindFirstChangeNotification; WM_FILESYSCHANGE; WaitForSingleObject; Notification of file change; WaitForMultipleObject; Threads; ReadDirectoryChangesW |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 54 : February 2000 | View article | No source code |
Summary | Cubes not quite to the rescue. | ||
Keywords | One last compile |
Patterns And Persistence | |||
---|---|---|---|
Authors | Peter Hinrichsen | Type: Article | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Peter Hinrichsen uses the visitor pattern to build a persistent framework for database applications without any data-aware controls, providing more power and flexibility than the BDE, with true database independence. | ||
Keywords | Design patterns; Persistence framework; Data aware controls; Data-aware; Problems with data aware; Visitor pattern; Database applications; Business objects; Database engine independence; Iterator pattern; Factory pattern; SQL; Visitor manager pattern; Persistent objects; Database independence |
COM Corner: COM+ Events | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Steve Teixeira explains how events work in COM+, part of this month's release of Windows 2000, with its loosely coupled events model, and what this means for our own COM apps. | ||
Keywords | COM Corner; COM+ events; Connection points; Polling versus events; Tightly coupled event system; Loosely coupled event system; TCE and LCE; Publishers and subscribers; Windows 2000; Event class server; Event filters; Subscriber server |
Watching TDateTime Values | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Watching TDateTime Values | ||
Keywords | TDAteTime debugging; TDateTime in watch list; Debugger; Watched variables |
Executable File Differences | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Executable File Differences | ||
Keywords | Executable file differences; Executable timestamp; Date/time stamps; Compiler created timestamps; TDump utility |
Common Control Library Version Mismatch | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Common Control Library Version Mismatch | ||
Keywords | Common control library; TListView checkboxes; COMCTL32.DLL |
Dynamic Array Question | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Dynamic Array Question | ||
Keywords | Dynamic arrays; Initialising dynamic arrays; FillChar |
TImage.OnProgress Broken? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 54 : February 2000 | View article | View source code |
Summary | TImage.OnProgress Broken? | ||
Keywords | TImage.OnProgress; Progress bar; Image load progress |
Custom Grid Drawing | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 54 : February 2000 | View article | View source code |
Summary | Custom Grid Drawing | ||
Keywords | Custom grid drawing; Colouring a row in TDBGrid; OnDrawDataCell; DefaultDrawing; Customising grid display; Customising rows and columns; OnDrawColumnCell |
Splat: Sound And Graphics With Delphi | |||
---|---|---|---|
Authors | Ray Lischner | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Ray Lischner provides an excellent tutorial on using sounds and graphics in Delphi, with a handy application your pre-school kids will just love! | ||
Keywords | Sound and Graphics; Multimedia; Drawing shapes; Playing sounds; Keyboard and mouse events; Double buffered graphics; TImage; TApplicationEvents; Keyboard handling; WAV files, WAVE resources; Sound files; Including resource scripts; .RC files; $R compiler directive; Getting free WAV files; Sound effects; Windows resources; MMSystem.PlaySound; Snd_Async; Snd_Resource; TCanvas; Force window to foreground; Force window to top; IsDebuggerPresent; DebukHook; Recording sounds; Media control interface MCI |
Under Construction: Internet Security | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Bob Swart has some important advice to help secure your data and your customers' data, covering security layers, firewalls, proxies and SSL. Plus, he has some useful code which allows you to create password-protected areas on websites. | ||
Keywords | Under Construction; Internet Security; Firewalls; BlackICE Defender; Proxy server, proxies; httpsrvr.dll; TWebConnection; Secure Sockets Layer SSL; Secure HTTP, S-HTTP; HTTPS; Verisign and Thawte; Password-protected website; Password access; Protected web pages; HTTP headers; MIME-type; HTTP error 401 unauthorized; NPH- non protocol header; CGI applications; DrBobCGI unit; Base64 encoding; Base 64 encoding; WebBroker; InternetExpress; WebModules; TWebRequest.Authorization; WWWAuthenticate; Realm; ActiveX security issues |
Beating the System: Wrapping The RAS Services API | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Dave Jewell has been delving into the cloudy waters of the Windows Remote Access Services API, which also serves as a timely tutorial on how to wrap an API set as a Delphi object, without getting any unpleasant surprises when moving your code to other platforms, and showing how to fail gracefully if a required API doesn't exist. | ||
Keywords | Beating the System; RAS Services API; Remote Access Service; Windows 2000; How to wrap a Windows API; Wrapping an API; API wrappers; Dial-up networking DUN; RASAPI32.DLL; RNAPH.DLL; RAS phonebooks; Dial-up phonebook; Windows NT and RAS; Make New Connection wizard |
Contain Yourself! | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | David Baer investigates the goodies to be found in Delphi 5's new container class unit, plus the enhancements made to TList, and the TInterfaceList introduced in Delphi 4. Finally, David presents a new flexibly-self-sorting container class of his own. | ||
Keywords | Container classes Delphi 5; Enhanced TList; TInterfaceList; Self-sorting container class; TList.Extract; raise ... at address; Exception handling; TListNotification; TList.Notify; TList notifications; TList notify bugs; TStringListSortCompare; Sorting a StringList; TStringList.CustomSort; Classes unit; TThreadList; TClassList; TObjectList; TComponentList; Simple stacks and queues; TOrderedList; LIFO and FIFO; TQueue, TObjectQueue; RTTI |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 55 : March 2000 | View article | No source code |
Summary | Me, Bill and socks. | ||
Keywords | One last compile... |
Algorithms Alfresco: Happiness Is An Option | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Julian Bucknall unwraps some common difficulties using multiple threads in your applications, covering critical sections, mutexes, semaphores and events, plus a solution to the readers/writers problem. | ||
Keywords | Algorithms Alfresco; Multithreaded programming; Processes, threads; Race condition; Primary thread; Multiprocessor machines; Multiple processors; WaitForSingleObject; WaitForMultipleObjects; Synchronisation objects; Critical sections; EnterCriticalSection; LeaveCriticalSection; TRTLCriticalSection; TryEnterCriticalSection; Deadlock; Signalled handle; Unsignalled handle; Mutex; ReleaseMutex; CreateMutex; OpenMutex; CloseHandle; Semaphore; ReleaseSemaphore; CreateSemaphore; OpenSemaphore; Windows event objects; Win32Event; Auto reset event; Manual reset event; CreateEvent; OpenEvent; SetEvent; ResetEvent; PulseEvent; Readers/Writers problem; LockList and UnlockList; TThreadedList |
Persistent Fields: Friend Or Foe? | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Guy Smith-Ferrier gives us a thorough analysis of both the strengths and weaknesses of persistent fields, dispelling a myth or two along the way, with fresh information from Delphi 5. | ||
Keywords | Persistent fields; Fields array of dataset; TField; FieldByName; Fields Editor; Syntax checking; Field properties and events; Data dictionary; Lookup fields; Calculated fields; Aggregate fields; OnCalcFields; SQL Join, equi-join; TTable and TQuery; TDBLookupComboBox; Drag and drop fields; Replacement fields editor; Dataset designer; TBDEDesigner; TCDSDesigner; TClientDataset; TDSDesigner; ADO Express; InterBase Express; Component editors; Type mismatch for field |
COM Corner: COM+ Queued Components | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Steve Teixeira outlines COM+ queued components. Included in Windows 2000 Server, and based on Microsoft Message Queue technology, queued components provide a means for COM+ clients to asynchronously invoke methods of COM+ server components. Steve reassures us that things are not as difficult as they sound... | ||
Keywords | COM Corner; COM programming; COM+ queued components; Windows 2000; MSMQ; Microsoft message queue; COM+ server; Object briefcase; Recorder, listener, player; Scalability; Load scheduling |
RTTI And Module Boundaries | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 55 : March 2000 | View article | View source code |
Summary | RTTI And Module Boundaries | ||
Keywords | RTTI; Module boundaries; Is and as operators; Safe typecasting; reInvalidCast; Virtual method table VMT |
Object Inspector Refuses To Make Event Handler | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 55 : March 2000 | View article | View source code |
Summary | Object Inspector Refuses To Make Event Handler | ||
Keywords | Event handlers; Adding event handlers; TMethodProperty; Property editors; DsgnIntf unit |
TStrings And Object Owners | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 55 : March 2000 | View article | View source code |
Summary | TStrings And Object Owners | ||
Keywords | TStrings and object owners; TStringList; Object reference; What owns an object?; TStringList.Objects |
ListView Checkbox Changes | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 55 : March 2000 | View article | View source code |
Summary | ListView Checkbox Changes | ||
Keywords | ListView checkbox changes; TItemChange; TListView.OnChange; TListItem.Checked; OnChanging; OnSelectItem; CanChange |
Visual Form Inheritance And Frames: Friend or Foe? | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Guy Smith-Ferrier discusses the relative merits of visual form inheritance and frames, explaining how they work, their good and bad points, and recommending how we should use these facilities. | ||
Keywords | Visual Form Inheritance VFI; Frames; Repository; Sub-forms; Enter moves between controls; KeyPreview; TComponent.Notification; TComponent.Loaded; csInheritable; VFI drawbacks; ComponentStyle; TNotebook; Frames drawbacks; Form components |
Beating the System: Wrapping The RAS Services API, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Dave Jewell enhances his wrapper for Windows' RAS services, with extra goodies for phonebook manipulation and more | ||
Keywords | Beating The System; RAS Services; Phonebooks; Dial-up networking DUN; Windows 2000; Telephone API TAPI; RasGetCountryInfo; Country list dialing codes; Dial parameters; RAS connection manager; Connection notification; WaitForSingleObject; RASConnectionNotification; RASEnumConnections; RASGetConnectStatus |
Splat: Part 2, Going International | |||
---|---|---|---|
Authors | Ray Lischner | Type: Article | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Ray Lischner continues his useful demonstration of using Delphi's sound and graphics facilities. This month he internationalises the sample application and shows how to compress sound resources to reduce the .EXE's footprint. | ||
Keywords | Sound and graphics; Internationalisation; Internationalization; Compressing resources; ZLib compression; Multiple languages; Keystroke handling; Keyboard scan codes; Wndows code page; Virtual key code; Localisation, Localization; resourcestring; Convert numbers and strings; VAL and STR; Resource localization; FindResourceHInstance; Finding resource DLL handle; Recording sounds; Input Locales; Install keyboard layout; Control Panel; Keyboard applet; Unicode; ToUnicode Windows NT; WideString and AnsiString; Unicode TLabel TStaticText; CreateWindowW; Resource DLL Wizard; ELL; Windows metafiles; Drawing shapes; Enhanced metafiles; WAV resources; TCompressionStream; Keyboard state; Extended keys |
Algorithms Alfresco: Hyperactive | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Julian Bucknall has more multithreading insights, this time covering producers and consumers, with easy to follow examples to explain it all. | ||
Keywords | Algorithms Alfresco; Multithreading; Data Producers and Consumers; Synchronisation objects; Readers and Writers; Semaphore; Queue; Thread-safe; Mutex; InterlockedDecrement |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 56 : April 2000 | View article | No source code |
Summary | The name's Delphi. Borland Delphi. | ||
Keywords | One last compile... |
Under Construction: CORBA Exceptions In Delphi | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Bob Swart explains how to handle CORBA-specific exceptions in Delphi using VisiBroker. | ||
Keywords | Under Construction; CORBA exceptions; Password access update; HTTP 401 Unauthorized; WebBroker; Internet Explorer 5; WWW-Authenticate update; Catastrophic failure error; CORBA error handling; VisiBroker for Delphi; SystemException; C++Builder exceptions; VisiBroker 3.4 problems; IDL exception definition |
Dragging And Dropping Part 1: VCL | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Brian Long begins a thorough discussion of how drag and drop works by running through the VCL's built-in support, with some clever enhancement ideas too | ||
Keywords | Dragging and Dropping; Drag and Drop; VCL drag and drop support; Drag source; Drag target, drop target; Controls; cm_Drag message; DragMode; dmAutomatic; dmManual; BeginDrag; Mouse.DragThreshold; Mouse.DragImmediate; Accept dragged object; OnDragDrop; FindDragTarget; CancelDrag |
COM Corner: COM+ Security | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 56 : April 2000 | View article | No source code |
Summary | Steve Teixeira explains the security features in COM+ and how to put them to use in your own applications. | ||
Keywords | COM Corner; COM+ Security; Role-based security; Component Services tool; Windows 2000; COM+ roles; Impersonation levels; Authentication level; DCOMCNFG; CoInitializeSecurity; CoSetProxyBlanket; Multi-tier performance COM+; Programmatic security; Declarative security; IsCallerInRole; IObjectContext |
Memos And Scroll Bars | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Memos And Scroll Bars | ||
Keywords | Memos and scroll bars; Automatic scroll bars TMemo; Scrollbars |
MIDAS Delta Packets | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | MIDAS Delta Packets | ||
Keywords | MIDAS Delta packets; TClientDataset.Delta; Dataset changes; MIDAS licence fees; OleVariant; Data packet and delta packet; Reconcile, ApplyUpdates; OnUpdateData |
Drawing On Status Bars | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Drawing On Status Bars | ||
Keywords | Drawing on status bars; Customised status bars; Icons on status bar; Status panels on status bar; TStatusPanel; SimplePanel |
Accessing Application Icons | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Accessing Application Icons | ||
Keywords | Accessing application icons; SHGetFileInfo; SHFILEINFO record; Extract application icon; SHGFI_EXETYPE |
COM RTL Support | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | COM RTL Support | ||
Keywords | COM RTL support; ProgID; Connect to Automation object; ClassID; IDispatch; CreateOleObject; GetActiveOleObject; Windows Running Object Table; ROT; OleCheck |
Object Assignment | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Object Assignment | ||
Keywords | Object assignment; Copying or assigning objects; Pointers; Object references; AssignTo |
Object Property Assignment | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 56 : April 2000 | View article | View source code |
Summary | Object Property Assignment | ||
Keywords | Object property assignment; Property assign or copy? |
Dragging And Dropping Part 2: Enhanced VCL | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Brian Long continues his in-depth examination of drag and drop in Delphi applications. This month he moves on to custom drag objects. | ||
Keywords | Drag and drop; Enhancing VCL drag and drop; Custom drag objects; Drag control objects; Complex OnDragOver; Complex OnDragDrop; TDragObject; TDragControlObject; Drag and dock; OnStartDrag; OnDragOver; OnDragDrop; IsDragObject; Custom drag cursor; GetDragCursor; GetDragImages; Merge image with drag cursor; crDrag and crNoDrop; Drag image list; ControlStyle problem; csDisplayDragImage; TDragImageList; Dragging and DLLs; Forms in DLLs; Drag and drop and DLLs |
Correction: ADO Batch Updates | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 57 : May 2000 | View article | No source code |
Summary | Guy Smith-Ferrier has some updated information concerning his article in Issue 54 (February 2000). | ||
Keywords | ADO Batch Update correction; Issue 54 February 2000; BDE TUpdateMode; upWhereChanged; ADCPROP_UPDATECRITERIA_ENUM; Update Criteria; MDAC SDK 2.1 |
Beating the System: Alpha Blending In Windows 2000 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Dave Jewell has a flash of deja vu from the days of EGA video cards... and unveils the secrets of creating cute translucent effects in Windows 2000. | ||
Keywords | Beating the System; Alpha blending; Windows 2000; Translucent windows; Transparent or translucent; SetWindowRGN; Apparent translucency; Non-rectangular windows; Layering; Window buffering; Flicker; Animation and layering; WS_EX_LAYERED; CreateParams; Window style bits; GetWindowLong; SetWindowLong; SetLayeredWindowAttributes; dwFlags; lwa_ColorKey; lwa_Alpha; bAlpha opactity level; crKey; Transparency by colour; Transparent colour; Shadowed windows; Window shadows; wm_WindowPosChanged; AnimateWindow; AW_HOR_POSITIVE; AW_VER_POSITIVE; Sliding windows; SystemParametersInfo; SPI_GetMenuAnimation; SPI_GetMenuFade; Animated menus; Sliding menus; Fading menus; UpdateLayeredWindow; Shrinker: problems?; Executable compressors; EXE compression |
Life Without Data-Aware Controls | |||
---|---|---|---|
Authors | Philip Brown | Type: Article | |
Issue | 57 : May 2000 | View article | View source code |
Summary | What's this? Heresy or the way we should all be working? Philip Brown presents the case for doing away with data-aware controls in our database applications, along with some ideas on how we can make life bearable without them. | ||
Keywords | Data-aware controls; Data aware controls; No data-aware controls; Data-aware disadvantages; Decoupling; Separate logic and interface; Business rules; Application design; Application architecture; Visually representing sets; Data-aware grid problems; Transaction performance; Property sheets; Visual form inheritance; TTabSheet for Master-Detail; Grid versus ListView; Populating a ListView; BeginUpdate and EndUpdate |
Under Construction: Delphi 5 And MIDAS 3 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Bob Swart discusses the new things to be found in MIDAS 3, including stateless remote data modules. He covers deployment issues and describes the best way to migrate your MIDAS 2 applications over to MIDAS 3. With the new (much) lower licence cost, MIDAS could now see far wider use by Delphi developers. | ||
Keywords | Under Construction; MIDAS 3 and Delphi 5; Multi-tier applications; N-tier; Instancing and threading; Visual data module designer; MIDAS UpdateRegistry; TDataSetProvider; IProviderSupport; IAppServer; MIDAS server; Upgrade MIDAS 2 to MIDAS 3; SocketConnection; Socket Servers; NT Service; Stateless remote data module; Shared remote data modules; XMLBroker; GetXMLRecords; Maintaining state; Deploying MIDAS; MIDAS licensing |
Effective Delphi Class Engineering 1: Crossing The Chasm | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 57 : May 2000 | View article | No source code |
Summary | David Baer kicks off a new series of articles aimed at all of us who are reluctant, confused or ill-informed on what object-oriented development is all about. The goal is to demonstrate, clearly and without jargon-loaded obfuscation, how to design, create and use Delphi classes to make your development more productive. | ||
Keywords | Delphi class engineering; Object oriented development; Class, component, object; Class design; VCL; Components or controls; Encapsulation; Inheritance; Polymorphism; Class member visibility; Private; Published; Protected; Public; Methods; OO design methods; Refactoring |
Algorithms Alfresco: Push The Limits | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Julian Bucknall has a collection of useful tips and tricks to give your applications that high performance edge. | ||
Keywords | Algorithms Alfresco; Performance and optimisation; Optimization; Profilers; GetTickCount; Big-O notation (Big-Oh)); Sequential search; Binary search; Time efficiency; Space efficiency; Space/time trade-off; Long strings; String search and replace |
Resolve That Date! | |||
---|---|---|---|
Authors | Martin Lanza | Type: Article | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Martin Lanza presents a handy routine to convert dates in just about any commonly used string format to Delphi's own TDateTime. | ||
Keywords | Converting dates; Date in string format; TDateTime; Date string to TDateTime; StrToDate; Visual Basic DateValue |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 57 : May 2000 | View article | No source code |
Summary | Into the IUnknown | ||
Keywords | One last compile |
Where Is My Documents? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Where Is My Documents? | ||
Keywords | My Documents folder; Shell API; Finding My Documents; SHGetSpecialFolderLocation; SHGetPathFromIDList; CSISDL_PERSONAL |
Getting UNC File Names | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Getting UNC File Names | ||
Keywords | Getting UNC filenames; Translate filename to UNC; ExpandUNCFilename; GetComputerName |
Adding Tool Buttons | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Adding Tool Buttons | ||
Keywords | Add button to TToolBar; SetToolBar; Customising a toolbar; TToolButton |
Modifying The VCL Source | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Modifying The VCL Source | ||
Keywords | TMaskEdit bug; Modifying VCL source; Recompiling the VCL |
COM Terminology Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | COM Terminology Problem | ||
Keywords | TClientDataset; DBCLIENT.DLL; In-process COM servers; DLLs and COM servers |
Adding ActiveX/ ActiveForm Properties | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Adding ActiveX/ ActiveForm Properties | ||
Keywords | Add properties to ActiveX; Add properties to ActiveForm; TActiveXControl; TActiveXControlFactory; TActiveFormFactory; ActiveXControlClass; WinControlClass; TActiveXFormControl; IPersistPropertyBag; IPersistStreamInit; IPersistStorage |
Unhelpful Panel | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Unhelpful Panel | ||
Keywords | Unhelpful panel; Panel HelpContext; WS_CLIPCHILDREN; WS_EX_CONTROLPARENT; Container control problems; Help for panels |
Corrections | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 57 : May 2000 | View article | View source code |
Summary | Corrections | ||
Keywords | Clinic Corrections; Issue 47 July 1999; $Hints directive; Issue 53; Authenticode |
Easy Web Controls | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Paul Warren has a really neat and easy way to generate and use visual web controls such as a calendar and charts in your web applications. | ||
Keywords | Easy web controls; World wide web www; Web applications; Internet; WebModule; Visual components in web app; Web app calendar; Visual component WebModule; Control wrapper; Response.ContentStream; TWinControl.PaintTo; Copy control to bitmap; Bitmap image of control; Printing a component; GetContentAsStream; Calendar component; Rotatable label; IntersectClipRect; Web chart control; WebBroker; TPageProducer |
Under Construction: Delphi 5 Active Server Objects | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Bob Swart describes how easy it is to create and use Active Server Objects in Delphi 5 that can be used in web (or intranet) pages created using Microsoft's Active Server Pages scripting language. | ||
Keywords | Under Construction; Active Server Objects; Writing ASP objects; Server-side scripting; Web applications; World wide web www; ASP scripting; ASP Object wizard; ActiveX library; CoClass Name; Instancing and threading; Page-level event methods; Object context and MTS; ASP Request; ASP Response; ASP Session; Type library; ciMultiInstance; ciSingleInstance; Deploying ASP Objects; Script, Execute attributes; IIS 4.0; ASP session information; ASP, CGI and ISAPI; State management; Cookies; ASP.DLL; Debugging ASP objects |
ADOX Extensions For DDL And Security | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Guy Smith-Ferrier returns to ADO this month to explain how to use ADOX: an additional set of interfaces for ADO that allow us to handle the creation, maintenance and security of databases from our applications. | ||
Keywords | ADOX extensions to ADO; ADO security and DDO; SQL DDO and DCL; Database maintenance; Database security; Database creation; Data manipulation language; MDAC; ADOX type library; MSADOX.DLL; ADOX Catalog; Get_ActiveConnection; Set_ActiveConnection; CoCatalog; Create database ADO; Delete database ADO; _NewENum, IENumVariant; axPropWrite; Create table ADO; Autoincrement in ADO; Auto increment field; ParentCatalog; OLE DB providers; GetPermissions; SetPermissions |
Beating The System: Groovy Group Boxes | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Dave Jewell creates an enhanced group box control which automatically enables and disables the child controls within it, ridding us of the burden of extra programming to grey-out and un-grey child controls each and every time. And Dave's control has more clever swings and bells too! | ||
Keywords | Beating the System; Enhanced group box component; Disabled group box; Group box child controls; Disable child controls; Greying-out child controls; TGroupBox; Group box caption; Group box border; Rotated caption; TrueType fonts; Caption background; Graduated fill; CreateFontIndirect |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 58 : June 2000 | View article | No source code |
Summary | We should be so lucky, lucky, lucky, lucky. | ||
Keywords | One last compile |
Dragging And Dropping Part 3: Windows | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Brian Long has the third part of his in-depth examination of drag and drop in Delphi applications, describing inter-application drag and drop using the Windows API. In particular Brian shows how to make your Delphi application act as a recipient for information dragged from other Windows applications. | ||
Keywords | Drag and drop; Inter-application; Receiving dragged data; Windows 3 drag and drop; DragAcceptFiles; wm_DropFiles; WParam, LParam; Drop structure; DROPFILES structure; DragQueryPoint; DragQueryFile; DragFinish; OleInitialize; OleUninitialize; RegisterDragDrop; RevokeDragDrop; IDropTarget; DragEnter; grfKeyState; DragOver; IDataObject; DragLeave; IAdviseSink; Drag and drop data formats; Drag and drop and clipboard; Woozle data format; FORMATETC, TFormatEtc; EnumFormatEtc; TClipFormat; Delphi 3 drag and drop; VCLComObject; Drag and drop storage medium; STGMEDIUM, TStgMedium; ReleaseStgMedium; GetDataAsText; Drag and drop data as text; CF_TEXT; GetDataAsRtf; Drag and drop data as RTF; CF_RTF; IRichEditOle; EM_GETOLEINTERFACE; CF_HDROP file list; CF_BITMAP, CF_PALETTE; Graphics unit; LoadFromClipboardFormat; CF_DIB; TBitMapFileHeader; CF_ENHMETAFILE; CopyEnhMetaFile; CF_METAFILEPICT; WMF files drag and drop; TMetaFilePict; GetMetaFileBitsEx; SetWinMetaFileBits; Get size of metafile; Drag and drop between apps; COM drag and drop |
Algorithms Alfresco: Strictly Confidential | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Julian Bucknall unravels the complexities of Data Encryption Standard (DES) encryption, showing how this widely-used private key encryption algorithm works and providing code to plug in and use. | ||
Keywords | Algorithms Alfresco; Cryptography; DES encryption; Private key encryption; Symmetric encryption; Security; Data encryption standard; NSB, NIST; IBM Lucifer project; S-boxes; DES trapdoor; Advanced Encryption Standard; AES encryption; Block cypher; Brute force attack; DES encryption broken; E-boxes, S-boxes, P-boxes; Ciphertext stealing; Electronic codebook mode; ECB; Cipher block chaining mode; CBC; Weak keys, semi-weak keys; Triple-DES; DES-EEE3, DES-EDE3 |
COM Corner: More Callbacks | |||
---|---|---|---|
Authors | Steve Teixeira | Type: Article | |
Issue | 58 : June 2000 | View article | No source code |
Summary | Steve Teixeira shows how to perform a simple interface-based callback from a COM server to a client. | ||
Keywords | COM callbacks; COM Corner; COM programming; RPC_E_WRONG_THREAD; COM proxies; Apartments; Data marshalling; CoMarshalInterThread...; CoInitializeEx |
Strings And Streams | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Strings And Streams | ||
Keywords | Strings and streams; TFileStream and text file |
Optimised Working Set | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Optimised Working Set | ||
Keywords | Optimised working set; SetProcessWorkingSetSize; Minimise memory use; Windows NT |
Copying Selected Text Between TRichEdit Controls | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Copying Selected Text Between TRichEdit Controls | ||
Keywords | Copy between richedits; TRichEdit; Copying RTF text; Copying formatted text; IRichEditOleCallback; EM_SETOLECALLBACK; IRichEditOle; EM_GETOLEINTERFACE; GetClipboardData; ImportDataObject; IDataObject |
Rich Text To Microsoft Word | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 58 : June 2000 | View article | View source code |
Summary | Rich Text To Microsoft Word | ||
Keywords | Copy formatted text to Word; Copy RTF text to Word; TRichEdit to Word; OleIsCurrentClipboard |
API problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 58 : June 2000 | View article | View source code |
Summary | API problem | ||
Keywords | WaitForSingleObject; Process handle signalled; Calling Microsoft Paint; Calling Windows Explorer; File access monitor; Pbrush.exe and MSPaint.exe |
ActiveForm Destruction | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 58 : June 2000 | View article | View source code |
Summary | ActiveForm Destruction | ||
Keywords | ActiveForm destruction; Application.Terminated; List of ActiveForm events |
Effective Delphi Class Engineering 2: Welcome To The Machine | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 59 : July 2000 | View article | No source code |
Summary | David Baer continues his series on practical object orientation by putting Delphi's object machinery under a magnifying glass. He examines topics such as memory management, method calling, protocols and other compiler- related issues. | ||
Keywords | Class engineering; How objects work; Compiler issues; Object oriented; Class design; Language Guide; Scope; Implementation and interface; Class declaration; Delphi units; Public, published, private; Constructors and destructors; Unit design; Forward declaration; Classes and units; Memory allocation and use; Form variable; Auto-create forms; Global variables; Heap and stack; Reference counted variables; Variable initialisation; Memory use for strings; Object reference variable; Designing constructors; Using Inherited Create; TThread and inherited create; Designing destructors; Using inherited Destroy; Free and Destroy; Testing for nil; Using Self; Class data member; Memory leaks; Benign leak; TObjectList; FreeAndNil; Set object reference to nil; Multiple constructors; Object replication; Copying objects |
Under Construction: Delphi 5 Active Server Objects, 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Bob Swart completes his coverage of developing Active Server Objects by looking at the way in which WebBroker and InternetExpress can be used by an Active Server Object. | ||
Keywords | Under Construction; Active Server Objects; ASP objects; Dynamic HTML; HTML forms, CGI forms; ASP request object; Forms, fat URL, cookies; IRequestDictionary; Password field in HTML form; POST and GET form methods; World wide web www; Web applications; WebBroker and ASP objects; InternetExpress and ASP; Debugging ASP objects; IntraBob; Multi-threading ASP objects; BDE session conflicts; AutoSessionName; TPageProducer; TDataSetPageProducer; HTMLDoc property; TQueryTableProducer; TCustomWebDispatcher; WebDispatcher; MidasPageProducer; XML from ASP objects; Generating XML; XMLBroker; IIS; MTS |
Application Architecture | |||
---|---|---|---|
Authors | Max Rahder | Type: Article | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Architecture is a fascinating subject, thinks Max Rahder. An application architecture is an infrastructure of classes which makes it easier to extend and modify a program, by retaining core functionality in the architecture. Max discusses this topic using an example application. Dramatically reduced development and maintenance costs is the promise. | ||
Keywords | Application architecture; Frames; Infrastructure; Application design; Abstract classes; Class methods; Overriding methods; Object oriented development; Entity forms; Business entity; Model-view approach; De-coupled user interface; Form inheritance; Frames versus components; Database primary key; Integer as primary key; Reference counting; Business object |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 59 : July 2000 | View article | No source code |
Summary | It works fine here | ||
Keywords | One last compile |
Algorithms Alfresco: Arrrgh Essay | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Julian Bucknall bravely steps into the arena to explain how the RSA encryption algorithm works. RSA is an example of public key encryption: data are encrypted using a freely available public key but can only be decrypted using a secret key, known only to the recipient of the data. | ||
Keywords | Algorithms Alfresco; RSA encryption; Public key encryption; Asymmetric encryption; Cryptography; Private and public keys; Exchanging keys; Public and secret keys; Modulo arithmetic; Binary square and multiply; Large powers; Prime numbers; Chinese remainder theorem; Leonard Euler; Pierre de Fermat; Wide word arithmetic; Large integer arithmetic; Fermat's Little Theorem; Probabilistic primality test; Carmichael numbers; Miller-Rabin algorithm; Multiplicative inverse; Euclid's extended algorithm |
Enhanced TRichEdit Controls | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Ever wondered why you can't put formatted text into a TRichEdit control at design-time using the property editor? Brian Long explains the reasons and develops an enhanced version of the control which answers this need. | ||
Keywords | Enhanced RichEdit controls; TRichEdit; Loading text into TRichEdit; Load RTF into RichEdit; Rich text; Formatted text into RichEdit; Store RTF text in form file; RTF as custom resource; TRichEditStrings; TRichEdit.Lines property; Fake properties; Component streaming; DefineProperties; TFiler; RecreateWnd; DestroyWnd; CreateWnd; Visual form inheritance VFI; VFI and components; Property editor; Binding RTF file into EXE; Resource files .RES; Resource scripts .RC; Resource compiler; $R directive; TResourceStream; List of RTF solutions |
Beating The System: TAR-geting Linux | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Dave Jewell's pun-making machine is in full swing this month as he provides a useful introduction to getting your code ready for Kylix (codename for Borland's eagerly-awaited Delphi for Linux) by way of a cross-platform TAR file utility. | ||
Keywords | Beating the System; Linux; TAR files; Unix; Cross-platform development; Conditional compilation; CLX; Delphi 6; Kylix: Delphi for Linux; QaPainter; Qt for Windows; Linux file system; Case-sensitive filenames; Archive files; Mutliple file archive; GZip and Tar; Coordinated Universal Time; Convert Octal to Integer; OctalToInt; Octal string; Linux file permissions |
IBSec: Securing InterBase Network Traffic On The Fly | |||
---|---|---|---|
Authors | Jani Jarvinen | Type: Article | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Jani JΣrvinen thinks InterBase is a great DBMS, but it has one flaw: all the data passing between server and client is open for all the world to see (not so good on the internet, for example). To overcome this he develops a utility which seamlessly encrypts and decrypts all InterBase network traffic. | ||
Keywords | InterBase security; Encrypting network traffic; Secure network traffic; Database security; Encryption; TCP/IP; Internet security; World wide web www; Web applications; IP address and port; TClientSocket; TServerSocket; WinSock API; InterBase on port 3050; Intercept TCP communication; Blocking or non-blocking; OnClientConnect; PostMessage; Custom message handlers; TThreadList; OnClientDisconnect; OnDisconnect; WSAECONNABORTED; Microsoft CryptoAPI; CAPI encryption; RC4 encryption; Streaming cypher; CryptCreateHash; CryptHashData; CryptDeriveKey; CryptEncrypt; CryptDecrypt; Encrypt with same data size |
InterBase Express Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | InterBase Express Problem | ||
Keywords | InterBase express login; OnLogin; LoginPrompt; LoginParams; IBX login bug; TIBDatabase; FHiddenPassword; HidePassword; IBX patch |
Strings To Numbers | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Strings To Numbers | ||
Keywords | Strings to numbers; Convert string to float; Convert string to integer; StrToFloat, StrToInt; Intercepting exceptions; IDE debugging; No exceptions in IDE; TextToFloat; Val |
Typed Constants | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Typed Constants | ||
Keywords | Typed constants; Pe-initialised variables; Initialised variables; Static variables; $J compiler directive; $WriteableConst directive |
Editing ListView Items | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Editing ListView Items | ||
Keywords | Editing ListView items; TListView; EditCaption; LVM_EDITLABEL |
Date Comments | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Date Comments | ||
Keywords | Code templates; Automatic comments; Generating date in IDE; delphi32.dci; Customising code templates |
Persistent Runtime Column Data | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Persistent Runtime Column Data | ||
Keywords | Persistent grid column data; Saving grid column layout; TDBGrid; Persistent runtime columns; TDBGrid.Columns.SaveToFile; Streams |
Delphi Grammar Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Delphi Grammar Problem | ||
Keywords | CreateProcess; WaitForSingleObject; WAIT_OBJECT_0; WAIT_TIMEOUT; Waiting for a process to end |
Memos And BLOb Fields | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 59 : July 2000 | View article | View source code |
Summary | Memos And BLOb Fields | ||
Keywords | Memos and BLOb fields; Binary large object; Paradox BLOb fields; FieldValues; TBlobStream |
Multi-Threading And COM | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 60 : August 2000 | View article | View source code |
Summary | COM can do a lot for you, but finding out how to create multi-threaded COM apps is not easy. Brian Long helps us understand the concepts, terminology and issues involved in multi-threaded COM programming. | ||
Keywords | COM multi-threading; Multi-threaded applications; Multiple threads; COM programming; Apartments; Process identifier; Process handle; VCL not thread-safe; Synchronize; Single-threaded apartment; STA; Apartment-threaded model; Multi-threaded apartment; MTA; Free-threaded model; Thread-neutral apartment; TNA; COM+ Windows 2000; Threading model; Thread local storage TLS; ComObj, ComServ units; Initialising COM; Proxy object; PostThreadMessage; Message loop, message pump; OleMainThreadWndClass; OleMainThreadWndName; RPC thread pool; Threadvar; Thread affinity; Critical section; Mutex; Semaphore; Choosing apartment type; OleInitialize; CoInitialize; CoInitializeEx; COINIT_APARTMENTTHREADED; COINIT_MULTITHREADED; In-process COM server; Out-of-process COM server; RPC_E_CHANGED_MODE; ThreadingModel; Mixed-model process; CoInitFlags; COINIT_SPEED_OVER_MEMORY; Delphi 4 and CoInitFlags; COM object wizard; RPC_E_WRONG_THREAD; COM errors; Marshaled; Marshaling interfaces; Marshalling; IGlobalInterfaceTable; RegisterInterfaceInGlobal; GetInterfaceFromGlobal; RevokeInterfaceFromGlobal; DCOM; Creating STAs; TComObjectFactory; TTypedComObjectFactory; TAutoObjectFactory; IClassFactory; _Release; InterlockedDecrement; Apartment interaction; Both-threading model; MTS, COM+, Windows 2000 |
Algorithms Alfresco: Dear Sir Or Madam | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Julian Bucknall is in repentant mood and gets round to answering a pile of readers' emails, covering bugs and enhancements from previous columns. | ||
Keywords | Algorithms Alfresco; Readers' emails and letters; Corrections; Issue 57 Algorithms Alfresco; Millennium bug; Issue 44 Algorithms Alfresco; Storing Huffman tree; Data compression; Writing out a tree; Rewading in a tree; Storing a binary tree; Recursion; Issue 46 Algorithms Alfresco; RPN expression parsing; Operator precedence; Equal precedence; Expression evaluation; Arithmetic expression; Reverse Polish notation; Memory overread; Issue 54 Algorithms Alfresco; Encryption; ENIGMA machine; Polish mathematicians; Rejewski; Cryptography; The Code Book, Simon Singh; Issue 42 Algorithms Alfresco; Linked lists; Double linked list; Records or objects; Linked list nodes; Linked list performance; Issue 51 Algorithms Alfresco; Floating point types; Data alignment; 8 byte alignment padding; Align to 8 byte boundaries; Double type; Delphi 5; Extended; Issue 50 Algorithms Alfresco; Red-black tree; Binary tree; Insert into red-black tree; Binary search tree; Balanced tree; Compiler options; $R, $Q, $X; Range checking; Overflow checking; Extended syntax; Choosing compiler options; Issue 53 Algorithms Alfresco; Simulated annealing; Competition |
Effective Delphi Class Engineering 3: Skyrocketing Property | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 60 : August 2000 | View article | View source code |
Summary | David Baer thinks properties are wonderful and this month gives us insights and advice on how they can best be put to use in our classes. | ||
Keywords | Class engineering; Class design; Object oriented development; Properties; Class properties; Public class data members; Properties as arrays; Get and set functions; Read and write specifiers; Default specifier; Initialising properties; Read-only class data access; Write-only properties; Array properties; Parameterised properties; Value by name properties; Default properties; Stored specifier; Exceptions and properties; Property validation; Optimisation; Private properties; Indexed get and set methods; Property assignments |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 60 : August 2000 | View article | No source code |
Summary | The Parent Trap | ||
Keywords | One last compile |
Beating The System: Easy Internet, 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Dave Jewell has been delving into Microsoft's WinInet DLL, which serves as the foundation for much of the key functionality in Microsoft's internet applications such as Internet Explorer. Dave uses the fruits of his labours to construct an FTP site browser. | ||
Keywords | Beating the System; WinInet.DLL; Internet applications; WinSock 2.0; TCP/IP; ws_32.dll; Internet Explorer; HTTP, FTP, Gopher; Delphi wrapper of WinINet; WinINet unit; InternetAutodial; Dialing internet connection; RAS dialup; Unattended dialup; Hanging up a connection; InternetAutodialHangup; InternetCheckConnection; InternetGoOnline; InternetGetConnectState; InternetOpen; Proxy server; lpszProxyByPass; Using local cache; Internet_Flag_From_Cache; HINTERNET session handle; Browse an ftp server; FTP on port 21; HTTP on port 80; HTTPS on port 443; Internet_Service_FTP; FTPGetCurrentDirectory; FTPSetCurrentDirectory; FTPFindFirstFile; FTP file finding; InternetFindNextFile; TWin32FindData; File date and time; Listing files on ftp server; GOPHER_FIND_DATA; Multi-threading; Callbacks; InternetSetStatusCallback; FTP browser example |
Under Construction: Pooling And Brokering | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Bob Swart returns to MIDAS 3 to explain Object Pooling and Object Brokering. If your web applications are feeling the strain and you need to share the software load over multiple servers, these technologies could provide just what you need. | ||
Keywords | Under Construction; MIDAS 3; Object pooling; Object brokering; TWebConnection; TDCOMConnection; Remote data module wizard; Single or multiple instance; OnBeforeGetRecords; State information; RegisterPooled; UnregisterPooled; Shared remote data modules; Shared MIDAS servers; TCorbaConnection; TSocketConnection; TCustomObjectBroker; ServerName or ServerGUID; TSimpleObjectBroker; Load balancing; GetComputerForGUID; GetComputerForProgID; GetPortForComputer; TServerCollection; LastConnectionTimeStamp |
Focus Made Easy | |||
---|---|---|---|
Authors | Hart Kerbel | Type: Article | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Hart Kerbel shares the analysis, design and implementation lessons he learnt when developing CtlFocus: a non-visual component designed to show users clearly exactly which control currently has focus should they look away from the screen and back again. Ideal for data entry tasks. | ||
Keywords | Which control has focus?; Changing control focus; CtlFocus component; Data entry; Highlight control with focus; OnActiveControlChange; Screen object; OnActiveFormChange; Event handler chain; Default TButton; CM_FOCUSCHANGED; VCL messages; CM_ messages; TCustomForm; TCMFocusChanged; Container controls; TWinControl and TComponent; Form subclassing; Windows subclassing; WndProc address; CM_ACTIVATE; CM_DEACTIVATE; RTTI; TypInfo unit |
Unexpected COM Error | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Unexpected COM Error | ||
Keywords | Automation server error; Input-synchronous call; Outgoing call cannot be made; Unexpected COM errors; IDispatch.GetIDsOfNames; DISP_E_UNKNOWNNAME; RPC_E_CANTCALLOUT...; COM threading; STA threading model; COM proxy object; COM and timers; InSendMessage |
Delphi And Email | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Delphi And Email | ||
Keywords | Sending email; Email components; MAPI; TMapiRecipDescrip; TMapiFileDesc; Automating Outlook; SMTP |
Component Construction | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Component Construction | ||
Keywords | Component construction; Form events sequence; CreateNew constructor; Form Create constructor; fsCreating in FormState; Determine form state; FindClass; csLoading, csReading; ComponentState; Determine component state; Form inheritance; Streams; Loaded; AfterConstruction |
Code Completion | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 60 : August 2000 | View article | View source code |
Summary | Code Completion | ||
Keywords | Code completion; Class completion; Using inherited; Using override |
Streaming Delphi Components | |||
---|---|---|---|
Authors | Jason Southwell | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Jason Southwell shows us how to stream components. The article describes a practical use of the ReadComponent and WriteComponent routines in creating a screen saver generator application. | ||
Keywords | Streaming components; Screensaver; Streams; TStream; ReadComponent; WriteComponent; ReadComponentRes; WriteComponentRes; Streaming Windows resources; Screensaver generator; Slideshow; .SCR files; RegisterClass declared twice |
Borland Conference 2000 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 61 : September 2000 | View article | No source code |
Summary | Bob Swart reports from Borland's 11th annual conference, held this year in San Diego. What's new, what's cool and what might be coming to a computer near you sometime soon! | ||
Keywords | Borland Conference 2000 |
Under Construction: Delphi And Strings | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Strings: we use them all the time and know everything there is to know about them, right? Wrong! Bob Swart delves under the hood to explain the various character and string types available in Delphi, how they work and which ones are appropriate to which use. | ||
Keywords | Under Construction; Strings; Using string types; Choosing string types; Character types; Char, AnsiChar, WideChar; ANSI character type; Unicode; Ord, Chr, UpCase; Character functions; Ordinal number of character; PChar; PAnsiChar, PWideChar; Null terminated strings; C/C++ char* type; $X+ compiler directive; ShortString, short string; $R+ compiler directive; Uppercasing strings; String performance; Long strings, AnsiString; Reference counted strings; UniqueString; LongString; AnsiString performance; Wide strings; WideString and COM; ResourceString |
Actions And Action Lists | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Actions have been around since Delphi 4, but remain under-used by most developers. Brian Long thinks that's a shame and in this article sets out to show us clearly what actions and action lists are and how to use them to best effect in your applications. He also explains how to install your own new reusable actions into the Delphi IDE | ||
Keywords | Actions and Action Lists; TActionList; Shared event handlers; User-generated commands; Trigger controls; Action clients; Action targets; Why use actions?; TImageList for action images; Action List Editor; Creating actions; Action category; Events for actions; Action event handlers; Invoking actions; Action keyboard shortcuts; ImageIndex; Custom actions; Standard actions; Pre-defined actions; Action classes: TBasicAction; TContainedAction; TCustomAction; THintAction; Action link classes; Actions, data-aware controls; TBasicActionLink; TActionLink; TMenuActionLink; TControlActionLink; TToolButtonActionLink; Action architecture; Updating actions; Creating standard actions; Initialise standard actions; Register standard actions; Data modules and actions |
Beating The System: Easy Internet, 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Dave Jewell concludes his examination of the WinInet API. Having established the basics, this month he moves on to ftp file downloading. | ||
Keywords | Internet applications; WinInet; Downloading files using FTP; FtpGetFile; InternetReadFile; Size of files for FTP; FTP browser; Beating the System |
Algorithms Alfresco: Caching In On Algorithms | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Julian Bucknall gives us a case study in choosing and implementing algorithms and data structures for a real world project: a file cache for use in (say) a web browser app. Along the way he covers caching principles, hash tables, priority queues and streams. | ||
Keywords | Algorithms Alfresco; Caching algorithms; File cache; Setting maximum cache size; Chooisng algorithms; Choosing data structures; Clearing a cache; Streams; Buffered file stream; File cache class; Hash table versus StringList; Priority queue; Chooisng data structures; Collisions in hash tables; Linear probing; Hash table load factor; Chaining; Collision resolution methods |
Creating Browser Help Objects | |||
---|---|---|---|
Authors | Eyal Hirsch | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Eyal Hirsch shows how you can plug your code right inside Internet Explorer to do some pretty neat tricks. All the information you need is here, plus an example to base your own projects on | ||
Keywords | Web browsers; Extending Internet Explorer; Browser help objects, BHO; COM programming; Internet Explorer extensions; Automation objects; Registering a BHO; CoClass GUID; IE5 BHO bug; Multiple BHOs in IE5; IObjectWithSite; IWebBrowser2; SHDocVW unit; Web browser events; Registering a BHO; Browser form manager; Manipulating HTML in IE5; MSHTML unit |
Design By Contract | |||
---|---|---|---|
Authors | Sascha Frick | Type: Article | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Sascha Frick explains what design by contract means, how it improves your development process and how to implement it using Delphi's support for assertions and invariants. | ||
Keywords | Deign by contract; Software design; Object oriented development; OOP; Inheritance and aggregation; Bertrand Meyer; Eiffel language; Assertions; Programmer errors; Breach of contract; Assert procedure; EAssertionFailed; $ASSERTIONS; $C compiler directive; Pre-conditions; Post-conditions; Invariants; Using assertions; Assertions and inheritance; Subclassing; Assertions and subclassing |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 61 : September 2000 | View article | No source code |
Summary | Reporting for duty | ||
Keywords | One last compile |
Component Hints On Status Bars | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Component Hints On Status Bars | ||
Keywords | Component hint on status bar; Hints on status bars; Setting up event handlers; Creating event handlers; TApplicationEvents; TStatusBar; TStatusBar.SimplePanel; AutoHint; THintAction; Actions; ExecuteAction |
Tracking Actions | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Tracking Actions | ||
Keywords | Tracking actions; Tracing action execution; TApplication.OnExecuteAction |
Unwanted Edit Windows | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 61 : September 2000 | View article | View source code |
Summary | Unwanted Edit Windows | ||
Keywords | Unwanted edit windows; Delphi IDE; IDE keyboard problem; Scan code $7F; Virtual key code 0; Illegal keyboard scan code; KeyBd_Event; ecNewEditWindow; Invalid shortcuts |
WideString Properties | |||
---|---|---|---|
Authors | Ray Lischner | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Ray Lischner explains how to use properties of type WideString in your custom components, working round the restrictions of Delphi's IDE and presenting a custom property editor. | ||
Keywords | WideString properties; Unicode; Component properties; WideChar; Reference counting; CreateFileA and CreateFileW; PChar and PWideChar; Using Unicode strings; TWinControl and ANSI; DefineProperties; DefineProperty; TReader, TWriter; Streams; Writing property editors; WideString property editor; TStringProperty; RTTI for properties; TypeInfo.GetPropInfo; Owner draw property editor; Storing WideStrings in .DFM |
Under Construction: Local ClientDataSets | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | MIDAS isn't just for multi-tier apps, says Bob Swart, but we can use it as a handy, compact and very fast local database engine, with just one DLL to ship (and no licence fees either!). Bob goes on to show how to use XML to get data into and out of a local ClientDataSet. | ||
Keywords |
Under Construction; Local ClientDataSets; TClientDataSet; MIDAS; MIDAS.DLL; In-memory database; Load data into ClientDataset; ClientDataSet and XML; XML metadata and row data; ADODataSet XML; Convert dataset to XML; Export dataset to XML; Convert XML to dataset; Create table from XML; |
Effective Delphi Class Engineering Part 4: The TObject Of My | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | David Baer focuses on inheritance in this part of his popular series on object oriented development in Delphi. | ||
Keywords | Class engineering; TObject; Inheritance; Object oriented development; OOP; Designing classes; ClassName function; Class member visibility; Private, public, protected; Protected class members; Inherited methods; Override directive; Virtual methods; Polymorphism; Virtual method table VMT; vmtInstanceSize; vmtNewInstance; vmtFreeInstance |
Searching In ADSI | |||
---|---|---|---|
Authors | Marc Scheuner | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Marc Scheuner knows that Active Directory Service Interfaces (ADSI) is a powerful set of COM objects and interfaces dealing with directories, supporting Active Directory, Novell's Netware 3.x and NDS, plus Microsoft Windows NT Server and IIS. But he also knows that using COM interfaces can be quite a challenge, so here he presents a Delphi component to wrap up the search capabilities offered by ADSI. | ||
Keywords | Searching in ADSI; ADSI; Active Directory Service; LDAP; Directory Access Protocol; Novell Netware NDS; ADSI component; COM programming; IDirectorySearch; ADO queries and ADSI; ActiveDs.dll; Dual interfaces; Late binding; Search base; AbandonSearch; ExecuteSearch; Wrapping COM objects; CoInitialize, CoUnInitialize; LDAP filter syntax; Wide strings; OLE BSTR strings; Delphi unicode library; LDAP search expressions |
Algorithms Alfresco: Careless Memories | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Julian Bucknall has been studying the heap manager in Delphi 5 in an ugly debugging odyssey and shares the fruits of his labour: the structures and algorithms it uses, plus useful code and structures for tracking down nasty bugs that trash the heap manager. | ||
Keywords | Debugging the heap manager; Delphi heap manager; Heap memory; Invalid pointer operation; FreeMem, Dispose; GetMem, New; Destroy; Memory management; ShareMem unit; Borlndmm.dll heap manager; GetMemoryManager; SetMemoryManager; TMemoryManager; Exceptions in heap debugging; Memory alignment; Free list; Previous free block is bad; Memory overwrites; Guard bytes; Guard blocks; Delayed freeing; GetProcessHeap; TQueue; Text file device driver |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 62 : October 2000 | View article | No source code |
Summary | The Midas Touch | ||
Keywords | One last compile |
Beating The System: Delphi Hails A CAB | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Dave Jewell investigates Microsoft's CAB file format and develops a Delphi class to access CAB files from your own applications, wrapping up the provided API into something a whole lot easier to use. | ||
Keywords | Beating the System; CAB files; Microsoft cabinet files; Cabinet.dll; CAB SDK; Compression, decompression; Creating CAB files; FDICreate; FDIDestroy; FDIIsCabinet; TFDICabinetInfo; CAB file folders; Spanning; FDICopy; FDINotify; CDECL calling convention; Callbacks; TFDINotification; Wrapping the CAB API |
Webifying Outlook | |||
---|---|---|---|
Authors | Jani Jarvinen | Type: Article | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Jani JΣrvinen wanted to be able to get addresses out of his Outlook address book over the web from thousands of miles away... Impossible? No, it just needs some lateral thinking and clever ideas. Jani shares all. | ||
Keywords | Microsoft Outlook; Access Outlook from the web; Outlook over internet; Web interface for Outlook; ISAPI applications; Web applications; COM applications; WebBroker; Web server; Named pipes; Inter-process communication; IPC; StringReplace; ReadFile, WriteFile; Blocking functions; Communicating with Outlook; Constructing a calendar; IsLeapYear; Leap year; Cache; Cannot open pipe |
Linking Data Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Linking Data Files | ||
Keywords | Linking data files into .EXE; Binary to object converter; BinObj32; Binary to .OBJ; Linking bitmap into .EXE; External directive; TBitmapFileHeader; TMemoryStream; Interposer class; TMemoryStream.SetPointer; Custom resources; Compiling resources |
CPU Window Bafflement | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 62 : October 2000 | View article | View source code |
Summary | CPU Window Bafflement | ||
Keywords | Using the CPU window |
Array Distinction | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Array Distinction | ||
Keywords | Open array and dynamic array; Open parameter types; Open array parameters; Variant open array; TVarRec |
Corrupt Component Palette | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 62 : October 2000 | View article | View source code |
Summary | Corrupt Component Palette | ||
Keywords | Corrup component palette; Video card driver problems; Graphics cards; Comctl32.dll; BusThrottle in system.ini |
Drag And Dock | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Brian Long demonstrates how to use Delphi's docking features in your applications to best effect: pitfalls for the unwary and tips to wow your users with! | ||
Keywords | Dragging and docking; Docking windows; Drag and drop; Docking toolbars; TToolbar; Undocking, ripping off; DragMode, DragKind; Dock image; Floating toolbar; Mouse.DragThreshold; BeginDrag; Mouse.DragImmediate; DockSite, dock site; OnStartDock, OnEndDock; OnDockOver; OnDockDrop; MouseDeltaY problem; TDragDockObject; MouseDeltaX; OnGetSiteInfo; Form grabber; UseDockManager; Panel grabber; InfluenceRect; TControlBar; TCoolBar; Programmatic docking; Automatick docking; ManualDock, ManualFloat; Floating; Is control docked?; Creating dock zones; Dock panels; Custom docking; DoAddDockClient; DoRemoveDockClient; TPageControl; TTabSheet; Custom drag image; TCustomDockForm; HostDockSite; FloatingDockSiteClass; Multiple docked clients; Dock manager; Creating dock manager; TToolDockObject |
Under Construction: More Local ClientDataSets | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Bob Swart continues his examination of TClientDataSet as a small, fast local DBMS, showing how to use XML files as input for ClientDataSets, creating true thin-client applications which can communicate with a server using sockets. | ||
Keywords | Under Construction; Local ClientDataset; TClientDataset; MIDAS; CGI applications; Web applications; Internet; Filters; n-tier applications; Sockets; TServerSocket, TClientSocket; Port numbers; Local DBMS; XML; OnClientConnection |
BorDebug: Return Of The Giant | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Hallvard Vassbotn describes how to use Borland's recently released BorDebug.DLL to read and interpret TD32 debugger information in our own applications, making it possible to introduce some very powerful debugging options. | ||
Keywords | BorDebug.DLL; Debugging; Turbo debugger 32, TD32; Reading debugger data; IDE debugger; Turbo Debugger file format; Microsoft debugger format; Giant.txt; Giant format; Debugging settings; Compiler configuration; MAP files; TDStrp32.exe; Stripping out debug data; EXE file structure; .TDS files; BorDebugRegisterFile; EXE file subsections; Modules; BorDebugSubSectionCount; AlignSym; Segments; Source module ranges; Source file ranges; GlobalSym; GlobalPub; Symbol type index; BorDebug wrapper classes; Debug data dump |
Effective Delphi Class Engineering Part 5: You Are TEgg Man... | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 63 : November 2000 | View article | No source code |
Summary | David Baer has not gone mad (though he may have been listening to too many old Beatles albums!): this instalment of his series continues his practical real-world discussion of polymorphism and inheritance. | ||
Keywords | Effective Class Engineering; Abstract methods; Polymorphism; TStream, stream objects; Virtual methods; TStrings; Manage and store strings; Designing class hierarchies; Class design; Object oriented; OOP; Inheritance; Dynamic methods; VMT virtual method table; Constructors; Class methods; NewInstance; inherited keyword; Hidden properties; Inherited properties; Inherited method calls; Multiple inheritance; Compiler hints and warnings; Reintroduce keyword; Suppress warnings |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 63 : November 2000 | View article | No source code |
Summary | In The Frame | ||
Keywords | One last compile... |
Beating The System: A Smorgasbord Of GDI Wonders | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Dave Jewell delves into some little-known areas of the Windows API to uncover a variety of useful gems, such as getting and changing the display mode, plus creating 'marching ant' effects for rubber band style selection areas in your applications. | ||
Keywords | Beating the System; GDI graphics; Windows API; Display mode enumeration; Available resolutions; QuickRes; EnumDisplaySettings; Screen size; GetDeviceCaps; Enum_Current_Settings; Changing display mode; Changing screen resolution; ChangeDisplaySettings; Marching ants; Highlight selected item; LineDDA; Delphi DCU file format; DeDe Delphi decompiler |
Delphi Junction: The Sequel | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 63 : November 2000 | View article | No source code |
Summary | David Baer gives you another chance to test your knowledge with a Delphi-based crossword. | ||
Keywords | Delphi junction crossword; Crossword puzzle |
Algorithms Alfresco: Come Together | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Julian Bucknall tackles the problem of sorting large files of data by explaining the mergesort algorithm. So stop loading that 100Mb data file into a sorted StringList right now and read on! | ||
Keywords | Algorithms Alfresco; Sorting large files; Sorting algorithms; Quicksort problems; Mergesort, merge sort; Heapsort; File-based sorting |
InterBase Generators | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | InterBase Generators | ||
Keywords | InterBase generators; Generate unique value; Generate unique key; AutoGenerateValue; arAutoInc; Auto incrementing; AutoRefresh |
VCL Debugging Query | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | VCL Debugging Query | ||
Keywords | Avoid debugging the VCL; Debugger; Turn Debug DCUs off |
BDE Paradox User Limit | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | BDE Paradox User Limit | ||
Keywords | BDE Paradox user limit |
Strange Form Behaviour | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Strange Form Behaviour | ||
Keywords | Label captions missing; Splash screen; Application.ProcessMessages |
Task Manager Figure | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Task Manager Figure | ||
Keywords | NT task manager; Memory usage; QueryWorkingSet; GetHeapStatus; GlobalMemoryStatus |
Property Editor Question | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Property Editor Question | ||
Keywords | Property editors; RegisterIntegerConsts; Integer constant properties |
Scrolling System Tray Text | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 63 : November 2000 | View article | View source code |
Summary | Scrolling System Tray Text | ||
Keywords | Scrolling system tray text |
Using InterBase From Delphi | |||
---|---|---|---|
Authors | Nigel Cohen | Type: Article | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Nigel Cohen explains how to get started with InterBase if you've never dipped a toe in the client/server database waters before. Whether you're looking to leave the BDE behind or wanting to take full advantage of the opportunities offered by Kylix, this is for you. | ||
Keywords | Using InterBase from Delphi; Database; Client/Server; Not using BDE; Kylix, Linux; InterBase Express, IBX; TIBDatabase; TIBTransaction essential; TIBTable; TIBQuery; Transactions; StartTransaction; Rollback; Commit; TDataset; IBExpress; DBExpress; Installing InterBase; IBPhoenix; Open Source; Windows NT service pack 5; Metadata; SQL command text editor; Basic SQL commands; SQL SELECT; SQL UPDATE; SQL INSERT, DELETE; SQL WHERE; SQL string matching % and *; SQL wildcards; SQL SUM, AVG COUNT; InterBase View; Stored procedures |
Algorithms Alfresco: The Holly And The Ivy | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Julian Bucknall has a stocking full of festive algorithms developed in co-operation with Father Christmas. | ||
Keywords | Algorithms Alfresco; Creation order of objects; Debugging; Constructor; GetMem; NewInstance; FreeInstance; TObject.Create; Custom heap manager; EBP stack base pointer; System._GetMem; Memory fragmentation; Heap fragmentation; Memory manager; Weighted random numbers; Percentiles; Partition algorithm; Mergesort arbitrary data; Zlib compression |
Getting Clever With WebBroker... Without The Web | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Paul Warren uses HTML a lot to provide output from his applications and has discovered that WebBroker provides an ideal way to generate that output using user-modifiable template files. And it all works just fine without the web! | ||
Keywords | WebBroker without the web; Generating HTML output; TPageProducer; HTMLFile; HTML template files; Replacing HTML tags; Saving TPageProducer output; Form printing; Form templates; Database reports; DataSetPageProducer; PageProducer text parsing |
Beating The System: IDE Secrets, Part 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Dave Jewell has been taking apart the Delphi IDE again, to discover a neat way to create Experts which will augment the capabilities of our favourite development environment. Including painless dockable IDE windows and toolbar forms. | ||
Keywords | Beating the System; Delphi IDE secrets; IDE-only packages; CORIDE50 package; DSNIDE50 package; Dockable IDE add-ins; Dockable IDE windows; Writing IDE experts; TIExpert; TDockableForm; TDesktopForm; DeskForm unit; RegisterDesktopFormClass; DeskUtil; Desktop configuration file; SaveWindowState; IDE toolbar forms; TDockableToolbarForm; IDECommandButton; TCommandButton |
The Hidden Power Of Jet | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Guy Smith-Ferrier explains that Microsoft's Jet engine is not just for interfacing with MS Access databases. Did you know it can talk to Paradox files, Excel, structured text files, and even HTML tables? | ||
Keywords | Jet database engine; Jet OLE DB provider; MDAC; Installable ISAM drivers; Paradox through Jet; TADOTable; Excel through Jet; TADOTable; Jet Extended Properties; Schema.ini; Text ISAM driver; Jet data export; Jet HTML data import |
Under Construction: Wireless Application Protocol | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Bob Swart has been pushing the envelope of new technology: he explains what WAP is all about and how to create applications for generating the WML XML-like code that WAP phones use. | ||
Keywords | Under Construction; WAP; Wireless; WML; Mobile phones; Nokia WAP toolkit; XML; WML tags; WMLScript, ECMAScript; WebBroker and WML; Dynamic WML; ISAPI; DataSetPageProducer; WAP gateway |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 64 : December 2000 | View article | No source code |
Summary | The Joy Of SQL | ||
Keywords | One last compile |
Solution To Delphi Junction: The Sequel | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 64 : December 2000 | View article | No source code |
Summary | David Baer gives us the solution to last month's crossword. If you got it right, award yourself a dozen extra mince pies! | ||
Keywords | Delphi Junction solution; Crossword puzzle |
Successful Web Application Design | |||
---|---|---|---|
Authors | Jason Southwell | Type: Article | |
Issue | 64 : December 2000 | View article | No source code |
Summary | Jason Southwell explains some of the principles behind designing web applications that are going to work, including five steps to avoid common pitfalls, based on his own extensive experience. | ||
Keywords | Web application design; Internet; World wide web www; Internet integration; ISAPI, CGI, WinCGI; Scalability; Stress testing |
Extending Actions | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Extending Actions | ||
Keywords | Extending actions; Custom actions; Standard actions; Actions and Action lists; SendAppMessage |
InActiveX | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | InActiveX | ||
Keywords | ActiveX in Internet Explorer; ActiveX Licensing; IClassFactory2; Licence file .LIC; CreateInstanceLic; RequestLicKey; Licence package file .LPK; License Package Authoring; LPK_Tool.exe; HTML OBJECT tag |
Unit Usage | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Unit Usage | ||
Keywords | Unit usage; Unused units in uses; Uses clause |
Paper Orientation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Paper Orientation | ||
Keywords | Change paper orientation; Printer DEVMODE; DM_ORIENTATION; Printing; TPrinter; GetPrinter, SetPrinter; GlobalLock, GlobalUnlock; Handle to pointer; OpenPrinter; DocumentProperties |
Debugger Glitch | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Debugger Glitch | ||
Keywords | Debugging; Stepping through code; Gutter width |
IDE Anomaly | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | IDE Anomaly | ||
Keywords | Minimize on run; Delphi IDE |
Debugger Failure | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Debugger Failure | ||
Keywords | Debugging; Integrated debugger; bordbk50.dll missing; Debugger kernel missing |
Missing Code Parameters | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 64 : December 2000 | View article | View source code |
Summary | Missing Code Parameters | ||
Keywords | Code Parameters tooltip |
Maximizing Web Applications With Database Pools | |||
---|---|---|---|
Authors | Jason Southwell | Type: Article | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Jason Southwell addresses the problem of getting your database-driven web applications to scale seamlessly, showing how to implement database connection pooling to avoid those awful 'site busy...' messages. | ||
Keywords | Database pools; Web applications; Scalability; CGI; Internet; InterBase; Database connection delay; ISAPI; Query queues; Database pool component; InterBase Express IBX; Query queue component |
Beating The System: Delphi Meets .NET | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Dave Jewell has been poking around in Microsoft's goodie bag again, this time inside the GDI+ DLL which is part of the Redmond giant's exciting new .NET framework. He explains how we can access GDI+ from Delphi to use some cute new drawing capabilities: clever brushes, alpha blending and more. | ||
Keywords | Delphi and .NET; GDI+; .NET framework; Using .NET libraries; GDIPLUS.DLL; SystemDrawing.dll; ILDASM; GdipCreatefromHDC; Graphics surface; Device context handler; GDI+ brushes; Transparency; GDI+ brush types; Draw arbitrary paths; Graphics; Bezier curves; Gradient fills |
The Data Shape OLE DB Provider | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 65 : January 2001 | View article | No source code |
Summary | Guy Smith-Ferrier explains how this provider, also known as MSDataShape and introduced in ADO 2.0, provides some useful functionality: hierarchical recordsets, parameterised hierarchies, reshaping, aggregate functions, grouping, adding blank fields and more. | ||
Keywords | Data shape OLE DB provider; ADO recordsets; ADOExpress; TClientDataset; MSDataShape; Hierarchical recordsets; Master/detail; SQL SHAPE; Persistent datasets; SQL RELATE; ADOExpress bug; Reshaping; Aggregate functions; Grouping data with COMPUTE; Adding blank fields; Custom shapes |
Algorithms Alfresco: The Man-Machine | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Julian Bucknall investigates state machines (or finite automata if you want to be clever), showing how they can provide elegant and efficient solutions to a number of programming problems. | ||
Keywords | Algorithms Alfresco; Finite automata; Finite state machines; Replace characters in string; States, tokens; Search and replace; String replacement; Automaton; Deterministic; Non-deterministic; String validation; Backtracking; Regular expression matching |
Effective Delphi Class Engineering Part 6: To Talk Of Many Thing | |||
---|---|---|---|
Authors | David Baer | Type: Article | |
Issue | 65 : January 2001 | View article | View source code |
Summary | David Baer concludes his series on developing Delphi classes with a miscellany of sound advice, ranging from events to exceptions, RTTI and message handling. | ||
Keywords | Class engineering; Class design; OOP; Object oriented; Using events; Procedural types; Event handlers; Creating new event types; Custom events; TNotifyEvent; Sender; Exceptions; Exception handling; Exception types; Try..except; Assign method; TPersistent; RTTI for classes; Message handling; Message handler |
Under Construction: Wireless Application Protocol, Part 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Bob Swart continues his explanation of writing applications that your WAP phone can access, covering the use of WAP images in the WBMP format. | ||
Keywords | Under Construction; WAP; Wireless devices; Mobile phones; WML; WML images, WBMP; Mime types; HTTP headers; Generating WBMP; Dynamic images; Internet; DatasetTableProducer for WML; WebBroker and WML; Generating WML; Database and WML |
One Last Compile | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 65 : January 2001 | View article | No source code |
Summary | The Empire Strikes Back | ||
Keywords | One last compile... |
Time Is The Simplest Thing | |||
---|---|---|---|
Authors | Primoz Gabrijelcic | Type: Article | |
Issue | 65 : January 2001 | View article | View source code |
Summary | ...not! Primoz Gabrijelcic has been researching the different time systems used throughout the world and constructing a library of routines for converting between them. | ||
Keywords | Time zone conversion; Time standards; Daylight saving time; GMT; Coordinated Universal Time; Swatch Internet Time; UTZ PST TZ; ESBDates package; TTimeZoneInformation; TIME_ZONE_INFORMATION; British Summertime; Bias, DaylightBias; Date formats; TDateTime; Day in a month format; Day of the month; Calendar |
DataSet Actions Flaw | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 65 : January 2001 | View article | View source code |
Summary | DataSet Actions Flaw | ||
Keywords | DataSet actions problem; Standard actions; UpdateAction; ExecuteAction; UpdateTarget; ExecuteTarget |
VCL Keystroke Behaviour | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 65 : January 2001 | View article | View source code |
Summary | VCL Keystroke Behaviour | ||
Keywords | VCL keystroke handling; Alt key behaviour on a form; MDI and SDI; HookMainWindow |
Problematic Custom Edit Control | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Problematic Custom Edit Control | ||
Keywords | Custom edit control; TCustomControl; Keyboard shortcuts; Forms and dialogs; wm_GetDlgCode; DLG_WANTCHARS; WM_CHAR; Processing keystrokes |
Drag And Drop Hot Spots | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Drag And Drop Hot Spots | ||
Keywords | Drag and drop hot spots; Custom drag object; Custom drag image; Custom drag cursor; TDragImageList; SetDragImage |
Records In Variants | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Records In Variants | ||
Keywords | Records in variants; ActiveX; Packed record; OleVariant; Automation objects; Safecall calling convention; Automation-compatible types; VarArrayCreate; Array from Variant |
Conditional Compilation | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 65 : January 2001 | View article | View source code |
Summary | Conditional Compilation | ||
Keywords | Conditional compilation; $DEFINE; $IFDEF; $UNDEF |
SQL Components | |||
---|---|---|---|
Authors | Nando Dessena | Type: Article | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Nando Dessena presents a framework for building search forms against relational client/server databases. | ||
Keywords | SQL components; Searching databases; Database search; Client/server; Searching and filtering; Ranges, filters; Lookup; Building SQL queries; InterBase |
Algorithms Alfresco: Everything Put Together Falls Apart | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Julian Bucknall builds on last month's explanation of state machines (or, if you prefer, finite automata) to describe the parsing, compiling and use of regular expressions. | ||
Keywords | Algorithms Alfresco; Regular expressions; Finite state machines; Expression matching; Parse regular expression; Parsing; Regex; Top-down parser; Recursive descent parser; Metacharacter; Grammar; Regular expression parser |
Custom Shell Verbs Using DDE | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Brian Long shows that DDE is not dead and still has a useful part to play in a developer's toolkit. The official way to add custom items to a file's context menu in Windows Explorer is to write a COM shell extension object... but it turns out DDE is a whole lot easier and is also the technique used by Microsoft! | ||
Keywords | Custom shell verbs; DDE; Windows Explorer; DDE handler; Shell extension objects; COM shell extensions; DDE server; DDE service; ddeMgr.Appname; DDE macro; File association; DDE message; ShellExecute, ShellExecuteEx; Write DDE server; TDdeServerConv bug; Canonical verbs; Parsing; OnExecuteMacro |
Beating The System: IDE Secrets, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 66 : February 2001 | View article | No source code |
Summary | Dave Jewell returns to poring over the entrails of the Delphi IDE, in particular the undocumented DSNIDE50 package, showing how we can use it to make better IDE wizards. | ||
Keywords | Beating the System; Delphi IDE secrets; DSNIDE50; IDE Experts; DeskForm, DockToolForm; DSGINTF; DockableToolbarForm; Docking forms Delphi IDE; Toolbar forms Delphi IDE; Deciphering DCU files; IDEMessages; Delphi IDE messages; TJoinDockForm |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 66 : February 2001 | View article | No source code |
Summary | Wired up and winding down. | ||
Keywords | One last compile... |
Under Construction: VisiBroker 3.3 for Delphi 5 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Bob Swart explains the goodies available in the latest version of Borland's tool for making CORBA applications easier for Delphi developers, including a new and much improved IDL2Pas. | ||
Keywords | Under Construction; VisiBroker 3.3 for Delphi 5; IDL2Pas; CORBA; Create CORBA servers; IDL Interface definition; CORBA client; Basic Object Adaptor BOA; BOA.ImplIsReady; BOA.ObjIsReady; CorbaInitialize; Server skeleton; Client stub |
Refactoring In The Real World | |||
---|---|---|---|
Authors | Brandon Smith | Type: Article | |
Issue | 66 : February 2001 | View article | No source code |
Summary | Brandon Smith shows how he used the principles of refactoring in a real-world project: a handy utility to build multi-application projects using the Delphi command-line compiler. | ||
Keywords | Refactoring; Martin Fowler; Converting procedural code; Converting code to OO; N-Tier applications; Multi-tier; Project builder utility; Build and make projects; Building components; Command line compiler; DCC32.exe; Redirect DOS process output; Bad smells; Speculative generality; Long method stink |
Using XML And XSLT In Delphi | |||
---|---|---|---|
Authors | Craig Murphy | Type: Article | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Craig Murphy decrypts the latest crop of acronyms to fly across our desks and shows how to use XML and XSLT within our Delphi apps to transform documents (such as HTML report files or websites) into other formats on demand. | ||
Keywords |
XML and XSLT; XSL Stylesheet; XML transformation; W3C standards; XML document elements; XML tags; XSLT processors; XT, Saxon; Internet Explorer 5; Namespace; Converting XML; Filtering XML elements; Using XSLT for filtering; |
Printing Web Pages | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Printing Web Pages | ||
Keywords | Printing web pages; Printing Internet Explorer; KeyBd_Event; Window handles; TWebBrowser; Window focus; ExecWB; QueryStatusWB; OLECMDID_PRINT |
Unit Ambiguity | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Unit Ambiguity | ||
Keywords | SetParent Windows API; VCL SetParent; Scope |
Moved Components Lose Events | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Moved Components Lose Events | ||
Keywords | Moving components; Notification messages; Windows messages; WM_COMMAND; WM_NOTIFY; Component notification |
Unreadable Tooltips | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Unreadable Tooltips | ||
Keywords | Unreadable tooltips; Code completion; Tooltip font colour color; TKibitzHintWindow; HintHidePause |
Elusive Package Editors | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 66 : February 2001 | View article | View source code |
Summary | Elusive Package Editors | ||
Keywords | Package editor window; Delphi IDE; Package editor not visible |
A First Look At Kylix: Electric Penguins Are Go! | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 67 : March 2001 | View article | No source code |
Summary | Based on a late Field Test version, Dave Jewell's technical overview is designed to help you grasp what Borland's new Delphi-compatible development system for Linux is all about. | ||
Keywords | Kylix first look review; Delphi for Linux; Pascal; CLX and VCL; Qt library; Trolltech; Unix; QObjectList; QObjectList_count; Installing Kylix; Linux distributions; VMWare; KDE; Kylix IDE; TLCDNumber; Qt widgets; Linux SO libraries; Linux DLLs; Kylix packages |
Threaded Inner-Process Communication | |||
---|---|---|---|
Authors | David Selwood | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | David Selwood explains how to implement communication between multiple threads, examining the different mechanisms available as well as other threading issues not covered before. | ||
Keywords | Threaded inner-process comm; Inner-process communication; Threading; Communicate between threads; TThread; BeginThread; CreateThread; Creating threads; IsMultiThread; Initialising thread; CreateSuspended; TThread.resume; TThreadRec; TCriticalSection; Critical section; Blocking execution; Multi-threading; TryEnterCriticalSection; Thread synchronisation; Thread synchronization; TThread.Synchronize; TMultiReadExclusiveWriteS...; Multiple threads reading; Global variables and threads; ThreadVar; Thread message queues; Application.ProcessMessages; Sleeping; PostThreadMessage; SendMessage; Terminated flag; TThread.Terminate; OnTerminate; FsynchronizeException; Thread returning results; Return results from thread; FreeOnTerminate; TThread.WaitFor; Terminating threads; Deadlock; Capturing thread exceptions; Debugging threads; Delphi IDE thread status; Multiple processors; Dr Watson utility; drwtsn32.exe; TThreadList thread-safe; Thread-safe objects; Priority class; Thread priority; NORMAL_PRIORITY_CLASS; FreeAndNil; Maximum threads; Thread-safe DLLs; ShareMem; DLL_THREAD_ATTACH; Databases and threading |
Under Construction: VisiBroker 3.3 For Delphi 5, Part 2 | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Bob Swart continues his discussion of the new version of VisiBroker for Delphi, this month covering support for special type constructs and CORBA callbacks. | ||
Keywords | Visibroker 3.3 for Delphi 5; CORBA; IDL; Enum, union, sequence; IDL2PAS; CORBA server; CORBA client; CORBA callbacks |
Appbars And Clipboard Viewers | |||
---|---|---|---|
Authors | Paul Warren | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Paul Warren shows how to create Appbars (windows which behave just like the Windows Taskbar, docking to the side of the desktop) and implements a clipboard viewer as an Appbar. | ||
Keywords | Appbars; Clipboard viewer; Windows taskbar; Windows API; Anchoring forms; SHAppBarMessage; APPBARDATA structure; ShellAPI.TAppBarData; BorderStyle; wmAppBarMessage; ABM_QUERYPOS; ABM_SETPOS; Appbar messages; Appbar notifications; WMWindowPosChanging; SetClipboardViewer; WM_DrawClipboard; WM_ChangeCBChain |
Algorithms Alfresco: What's The Difference | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Julian Bucknall wants to find the longest common subsequence: that's file differencing to you and me. | ||
Keywords | File differencing; Longest common subsequence; File differences; File comparison; Comparing files; Algorithms Alfresco; File changes; Unix DIFF; WinDiff; String differences; Transforming words; String subsequence; Fibonacci number; Matrix class; Matrix algorithm |
Speeding Up A Mathematical Expression Parser | |||
---|---|---|---|
Authors | Hallvard Vassbotn | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Hallvard Vassbotn discovers Pentium processor design can slow expression parsing dramatically. The cure is to generate optimised machine code at runtime. It's not as hard as it sounds! | ||
Keywords | Mathematical expressions; Algebra; Parsing expressions; Expression parser; Formula evaluation; Generating machine code; Pentium processor; Branch prediction logic; Misprediction penalty; Stefan Hoffmeister; Parser10 library; Parser component; Mathematical functions; Delayed DLL loading; PAGE_EXECUTE flag; PAGE_EXECUTE_READWRITE; Windows 2000; Plotting XY functions; Graphs and charts; TeeChart; Code optimisation; Performance optimisation |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 67 : March 2001 | View article | No source code |
Summary | Getting the right package | ||
Keywords | One last compile... |
Beating The System: Taming The Windows Desktop, Part 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Dave Jewell reveals a useful but poorly understood technique: DLL injection, and shows how it can be used to save and restore your Windows desktop. | ||
Keywords | Beating the System; Saving the Windows desktop; Windows desktop layout; Desktop icon locations; DLL injection; Arrange desktop icons; Windows Explorer; 12Ghosts SaveLayout; Desktop snapshot; Inter-process communication; TListView; vsIcon; COMCTL32.DLL; ProgMan program manager; GetWindow; SHELLDLL_DefView; Shell view router; Shell desktop programming; LVM_GetItemCount; CommCtrl; Hooking a thread; Application process space; Explorer address space; C++ pragma; Shared data segment; Shared data section; Hook message queue; GetWindowThreadProcessID; SetWindowsHookEx; PostThreadMessage |
Debugging Windows NT Service Applications | |||
---|---|---|---|
Authors | Dennis Passmore | Type: Article | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Dennis Passmore explains a handy technique for debugging NT Services. | ||
Keywords | Debugging NT services; NT Service applications; Windows NT Windows 2000; Delphi 5 built-in debugger; NT Task Scheduler; AT command; Security context; LocalSystem; Scheduling jobs; ServiceExecute |
Reviewed: Plasmatech Shell Control Pack 1.5b | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 67 : March 2001 | View article | No source code |
Summary | Reviewed: Plasmatech Shell Control Pack 1.5b | ||
Keywords | Review; Shell control pack; Plasmatech; Windows shell; Windows Explorer; DirectoryListBox; FileListBox; DriveComboBox; SelectDirectory; Select a directory; Windows shell wrapper; SHBrowseForFolder |
Reviewed: Dave Baldwin's HTML Display Components | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 67 : March 2001 | View article | No source code |
Summary | Reviewed: Dave Baldwin's HTML Display Components | ||
Keywords | Review; Dave Baldwin; HTML display; HTML components; HTML viewer |
Transfer Efficiency | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Transfer Efficiency | ||
Keywords | Creating DLLs; Packages; Making DLLs smaller; Smart linker |
Transient Stay-On-Top | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Transient Stay-On-Top | ||
Keywords | Transient stay-on-top; Floating windows; Docking; fsStayOnTop FormStyle; HWND_TOPMOST; SetWindowLong; SetWindowPos; WM_ACTIVATEAPP; NormalizeTopmosts; RestoreTopmosts; OnDeactivate handler; TApplicationEvents |
Drag And Drop And Scrolling | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 67 : March 2001 | View article | View source code |
Summary | Drag And Drop And Scrolling | ||
Keywords | Drag and drop; Scrolling treeview; Scroll when drop to treeview; OnDragOver; ScrollBars; DD_DEFSCROLLINSET; Inset region; DD_DEFSCROLLDELAY; Scroll delay; Scroll interval; DD_DEFSCROLLINTERVAL; DragScrollInset; DragScrollDelay; DragScrollInterval; win.ini; GetSystemMetrics |
Distributed Application Development With SOAP | |||
---|---|---|---|
Authors | Craig Murphy | Type: Article | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Craig Murphy demonstrates distributed application development using Delphi with version 2 of the Microsoft SOAP Toolkit. Discover how to make SOAP work for your application needs. | ||
Keywords |
Distributed applications; SOAP; Internet, world wide web; Microsoft SOAP toolkit 2.0; UDDI, WSDL; XML; SOAP request; SOAP listener; SOAP endpoint; HTTP; SOAP message structure; SOAP envelope; SOAP header; SOAP child; |
Under Construction: Data-Awareness And Interfaces | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Bob Swart discusses data-aware components, using an IDataAware interface to conveniently and easily manage data-aware components. | ||
Keywords | Data-aware components; Under Construction; Databases; Interfaces; Creating components; Building components; DataSource; DataField; TFieldDataLink; FFieldDataLink; DB, DBCtrls units; OnDataChange; OnUpdateData; Is a component data-aware?; Detect data-awareness; Interface method; GetInterface; Is an interface implemented?; Data-aware interface; Test for an interface |
Back to Basics: A Reintroduction To Properties, Part 1 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 68 : April 2001 | View article | View source code |
Summary | To help those who are relatively new to Delphi and/or Kylix, Dave Jewell provides an introduction to properties and how useful they are: not just for component developers, either! | ||
Keywords | Introduction to properties; Using properties; Properties without component; Delphi and Kylix; Object properties; How properties work; Property keyword; Reader and writer; Get and set routines; Encapsulation; Getter and setter; Private fields; Hiding the implementation; Property visibility; Scope; Indexed property |
Perspectives: Microsoft Visual Studio .NET | |||
---|---|---|---|
Authors | Steve Scott | Type: Article | |
Issue | 68 : April 2001 | View article | No source code |
Summary | In this new column, Steve Scott gives a personal opinion on Microsoft's forthcoming Visual Studio .NET: as an enthusiastic Delphi developer, what does VS.NET have to offer and what does Delphi need to do to continue to win the hearts of Windows developers? | ||
Keywords | Perspectives; Microsoft Visual Studio .NET; .NET framework; VS.NET; Memory management; Garbage collection; Windows API; C# language; Intermediate language IL; Common language runtime CLR; Just-in-time compiler; Anders Hejlsberg; Pascal, Java and c#; ASP.NET |
Algorithms Alfresco: The 51st State | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Julian Bucknall returns to state machines to show how to create a parser for Object Pascal code: extracting comments and recognising language keywords, providing a foundation which could be used for a 'pretty printer' code formatter, for example. He also deals with optimisation of regex evaluation. | ||
Keywords | Algorithms Alfresco; State machines; Regular expressions; Parsing Object Pascal; Pascal parser; Automaton; Extracting comments; Parsing by character; Streams, TStream; Stream filter; TFileStream; Read file by character; Buffered stream; Line endings; Tokenizing; Pascal tokens; Recognising keywords; Hash table; Regex testing; Exponential regex; X(.+)+X regex; Convert NFA to DFA; TList in Delphi 5; TObjectList performance; Binary tree; String matching |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 68 : April 2001 | View article | No source code |
Summary | Tips trom the top. | ||
Keywords | One last compile... |
Let's Cooperate | |||
---|---|---|---|
Authors | Primoz Gabrijelcic | Type: Article | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Primoz Gabrijelcic describes how to create and use file system-based synchronisation primitives: ideal for use with distributed systems, spread across a number of computers. | ||
Keywords | File-based synchronisation; Synchronisation primitives; Thread synchronisation; Multi-threading; Critical section; Mutex; Semaphore; Signal; Distributed applications; Inter-process communication; Shared read mode; File-based mutex; File-based critical section; File-based group; Process group; Synchronisation event; File-based SendMessage; Single writer multiple read |
Beating The System: Taming The Windows Desktop, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Dave Jewell has the second part of his unravelling of the Windows Desktop, with more on the fascinating technique of DLL injection and how to avoid the need for C/C++! | ||
Keywords | Beating the System; Windows desktop layout; Save desktop icons; DLL injection; Shared data segment; SetWindowsHookEx; UnhookWindowsHookEx; WM_COPYDATA; Desktop icon caption; LVM_GetItemText; LVITEM structure; Send data between processes; dwData integer not pointer; Deadlock |
Auto-Repeat Toolbuttons | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Auto-Repeat Toolbuttons | ||
Keywords | Auto-repeat buttons; Speed button, tool button; TButton; OnMouseDown; OnMouseMove; OnMouseUp; ControlState |
Paradox And The Euro symbol | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Paradox And The Euro symbol | ||
Keywords | Paradox and euro symbol; Paradox database; Euro currency symbol |
Lost Variables In The Debugger | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Lost Variables In The Debugger | ||
Keywords | Debugging; Local variable unavailable; Optimisation, optimization; Evaluate local variable; Compiler switches; Defproj.dof, Defproj.kof; Default project options |
Public Properties | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Public Properties | ||
Keywords | Public properties; Published properties; Data hiding; Using properties; Getters and setters; Get/Set routines; Accessor routines; Implementation hiding |
Popup Data Grids | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 68 : April 2001 | View article | View source code |
Summary | Popup Data Grids | ||
Keywords | Popup data grids; MIDAS master/detail query; Database; Remote data module; TDataSetProvider; TClientDataset; TDCOMConnection |
Apache Shared Modules | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Brian Long shows how to create and use Apache shared modules using Kylix. Pardon? Wossat? Apache is the web server used on Linux and shared modules are the Apache equivalent to ISAPI DLLs used with Windows Internet Information Server for high performance web applications. | ||
Keywords | Apache shared modules; Kylix; Linux; Apache web server; Web applications; Internet; CGI applications; ScriptAlias; ExecCGI; LD_LIBRARY_PATH; Set Env LANG; Linux glibc library; SysUtils.CheckLocale; Linux .so files; Shared libraries; DSO libraries; dlOpen Linux API; Linux dynamic library loader; ld.so; Locating Kylix libraries; /usr and /usr/lib; Symlinks; Apache soure code; Recompile Apache; libhttpd.so; libhttpd.ep; pthread library; Linux loader bug; Kylix shared objects Apache; Kylix help error; Configuring Kylix dbExpress; MIDAS libmidas.so.1; Loading shared modules; LoadModule; Module handler |
Beating The System: Taming The Windows Desktop, Part 3 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Dave Jewell has the final part of his unravelling of the Windows desktop, showing us how to programmatically save the desktop layout and amend its look and feel at will. | ||
Keywords | Beating the System; Windows desktop layout; dipslib.dll; Desktop icon positions; Save and restore desktop; WM_COPYDATA; DLL injection; Inject DLL into Explorer; PostMessage; PostThreadMessage; Send message to component; Non-visual components; AllocateHWnd; Forms unit; Allocate window handle; MakeObjectInstance; Window procedure; Desktop icon text colour; Transparent text background; CLR_NONE colour; Listview bug and CLR_NONE; Listview control redraw bug; Desktop icon caption; WM_GETTEXT; LVM_SETITEMPOSITION; Set desktop icon position; ListView_SetItemTextA; RedrawSingleItem bug; Redraw one listview item; LVM_FindItem; Screen resolution |
Simple Scene Graph Management And 3D Rendering With OpenGL | |||
---|---|---|---|
Authors | George Black | Type: Article | |
Issue | 69 : May 2001 | View article | View source code |
Summary | George Black explains scene graph management and the OpenGL rendering engine, an understanding of which is essential in order to create your own 3D rendering applications. He demonstrates the basic principles of scene management using some simple 3D objects to create a robot-shaped figure. | ||
Keywords | Scene graph management; OpenGL 3D graphics; 3D objects; Object view culling; OpenGL Rendering; OpenGL API; OpenGL32.dll; Window handle; Device context; Window pixel format; Rendering context; Transformation matrix; Transformation matrices; ModelView matrix; ViewPort matrix; Projection matrix; Retained mode; Immediate mode; Matrix stack; Rendering invisible objects; GL_SELECT GL_RENDER; gluPickMatrix |
Under Construction: DataCLX And dbExpress | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Bob Swart introduces dbExpress: the cornerstone of database access in Kylix and Delphi 6. | ||
Keywords | Under Construction; DataCLX; dbExpress; Kylix and Delphi 6; CLX; MyBase XML database engine; VisualCLX; Data-aware components; TSQLConnection; TSQLDataset; TSQLQuery; TSQLTable; TSQLStoredProcedure; TSQLMonitor; Unidirectional cursor; Browsing backwards; TClientDataset; TSQLClientDataset; ApplyUpdates; Delta packets; AfterPost; .CDS and .XML files; Migrating from BDE; Convert BDE tables to XML |
Kylix: A Technical Overview | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 69 : May 2001 | View article | No source code |
Summary | Now he's got his eager hands on a copy of the 'shrink-wrap' version of Kylix, Dave Jewell brings us his in-depth technical overview of the product, following on from March's introduction. | ||
Keywords | Kylix technical overview; Review; Delphi for Linux; Linux kernel patches; Qt library; Indy, WinShoes; w2kwm Window manager; Kylix components; Kylix IDE performance; VMWare performance problem; Threading; Thrddemo; Running apps from Kylix IDE; Deploying Kylix applications; Libqtintf.so; Libqt.so; Find required libraries; ldd utility; Wine Windows emulation; Windows API; Winelib; Wine thread problems?; LD_LIBRARY_PATH; Kylixpath shell script; ~/.bashrc file; Linux "autoexec.bat"; Hidden files |
XML One Conference Report | |||
---|---|---|---|
Authors | Craig Murphy | Type: Article | |
Issue | 69 : May 2001 | View article | No source code |
Summary | Craig Murphy reports back on the XML One conference: what's new in the fast-paced world of XML. | ||
Keywords | XML One conference report |
Algorithms Alfresco: Manage The Damage | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Julian Bucknall discusses compound files, otherwise known as structured storage. Ever wanted to know how to embed a whole directory and file system into one physical file? Don't miss this! | ||
Keywords | Algorithms Alfresco; Compound files; Structured storage; Extendible hash table; File system; DOS FAT; Clusters |
Back to Basics: A Reintroduction To Properties, Part 2 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 69 : May 2001 | View article | No source code |
Summary | Dave Jewell completes his introduction to properties, aimed especially at those who are just starting out with Delphi or Kylix, or who need a refresher. | ||
Keywords | Introduction to properties; Back to basics; Object inspector; Published section; RTTI; Runtime type information; Read-only properties; Array properties; Default keyword; Default property; Property storage; Property persistence; .DFM form file; Streaming properties; Stored keyword; How RTTI works; RTTI implementation; Properties in .NET; Properties in c# |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 69 : May 2001 | View article | No source code |
Summary | Master of none. | ||
Keywords | One last compile... |
SVCom 4.0 | |||
---|---|---|---|
Authors | Primoz Gabrijelcic | Type: Review | |
Issue | 69 : May 2001 | View article | No source code |
Summary | Primoz Gabrijelcic reviews Alexey Dynnikov's SvCom: classes and tools for developing NT service applications. | ||
Keywords | Review; SvCom 4.0; Alexey Dynnikov; NT service applications; NT security framework; TService; Pseudo-services; Windows 95, 98, Me; NT services emulation; NET START command |
FlashFiler 2.0 | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Review | |
Issue | 69 : May 2001 | View article | No source code |
Summary | Chris Frizelle reviews TurboPower's FlashFiler 2.0 database system. | ||
Keywords | FlashFiler 2.0; Review; TurboPower; Database engine; Client/server; Embedded databases; SQL |
Conditional Symbols | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Conditional Symbols | ||
Keywords | Conditional symbols; Conditional defines; $DEFINE; Conditional compilation; Compiler directives; $IFDEF; DOF and KOF files; $INCLUDE include file |
RTTI And Interfaces | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | RTTI And Interfaces | ||
Keywords | RTTI and interfaces; Published interface property; Kylix; ReferenceInterface; CLX |
Graphics Query | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Graphics Query | ||
Keywords | TImage apparent memory leak; Bitmap graphics; Freeing bitmaps |
Intercepting Window Closure | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Intercepting Window Closure | ||
Keywords | Intercepting window closure; Disabling Alt+F4; Disabling window close; WM_CLOSE; OnCloseQuery; CanClose |
Abbreviated Emailing | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Abbreviated Emailing | ||
Keywords | Emailing with Outlook; Communicating with Outlook; ShellExecute; URL syntax; Mailto command; Maximum URL length |
Custom App Launching | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Custom App Launching | ||
Keywords | Launching applications; Win32Check; CreateProcess; SW_SHOWMAXIMIZED; WinExec; Maximise window; ShowWindow |
TOleContainer And In-place Editing | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | TOleContainer And In-place Editing | ||
Keywords | TOleContainer; In-place editing; Embedded Excel object; OleCreate; TCreateInfo; CreateType; CoCreateInstance; Force new process |
Installing Kylix | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Installing Kylix | ||
Keywords | Installing Kylix from root; Not /root/kylix; /usr/local/kylix better |
Kylix Configuration Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Kylix Configuration Files | ||
Keywords | Kylix configuration files |
Kylix And Linux Distros | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 69 : May 2001 | View article | View source code |
Summary | Kylix And Linux Distros and Easter eggs | ||
Keywords | Kylix and Linux versions; Linux distributions distros; Linux patches; Kylix Easter eggs |
dbExpress Tips And Tricks | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Guy Smith-Ferrier follows on from Bob Swart's introduction to dbExpress with a selection of more advanced tips and tricks to help you get the most from it. | ||
Keywords | dbExpress tips and tricks; dbxdrivers dbxconnections; dbExpress drivers; Kylix; TSQLConnection; BeforeConnect; LoadParamsOnconnect; LoadParamsFromINIFile; Loading connection parameter; dbExpress metadata; GetTableNames; GetFieldNames; GetIndexNames; GetProcedureNames; GetProcedureParams; TSQLDataSet; SetSchemaInfo; Executing SQL directly; Read-only recordsets; TClientDataset; TSQLClientDataset; Execute, ExecuteDirect; dbExpress error codes; SQLConst unit; DBXError array; Connection cloning; ActiveStatements; MaxStmtsPerConn; Maximum statements; Statements per connection; AutoClone; MySQL; TSQLMonitor; SQL Monitor; Tracing SQL calls; SQLTraceDesc; Displaying TSQLMonitor data; dbExpress performance; Deploying dbExpress; DBEXPINT.DLL; libsqllib.so.1; MIDAS.DLL; midas.so; Statically linking dbExpress |
Under Construction: WebBroker For Linux | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Bob Swart shows how we can use Kylix to create web server applications for the Apache web server running on Linux, with the built-in Web Broker technology found in the Kylix Server Developer Edition. | ||
Keywords | Under Construction; WebBroker for Linux; Apache web server; Web applications; Internet; Kylix; Web modules; TWebDispatcher; WebActionItem; PathInfo; SetEnv LD_LIBRARY_PATH; httpd.conf file; TPageProducer; Cookies; CookieFields; ContentFields; QueryFields; HTMLDoc HTMLFile; TDataSetTableProducer; TSQLConnection; Deploying Kylix web apps; SetEnv LANG in httpd.conf; SetEnv HOME in httpd.conf |
How CLX Uses Qt | |||
---|---|---|---|
Authors | Brian Long | Type: Article | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Brian Long looks under the hood of the CLX library, used in Kylix and now in Delphi 6, to see how it uses Trolltech's cross-platform Qt C++ class library. He starts by looking at what Qt is and why it was chosen as the basis for the CLX library, and then moves on to see how Qt has been integrated with the Object Pascal language. | ||
Keywords | How CLX uses QT; Kylix; Linux; QT library; Widget sets; Linux user interface; X Windows; Trolltech; KDE desktop; Gnome and GTK widget set; VisualCLX; QT documentation; QTinterface library; libqt.so; Name mangling; Name decoration; libqtintf.so; Flat methods; Calling C++ classes; Flattened classes; CLXDisplay API; Qt.pas unit; Opaque references; Magic cookie, handle; QPushButton; TWidgetControl; Widget flags; SaveWidgetState; RestoreWidgetState; QT notification model; Windows messages; VCL message handlers; VCL events; X Windows events; MotionNotify; KeyPress KeyRelease; ButtonPress ButtonRelease; QT events; QT virtual methods; QEvent; QMouseEvent; QT signals and slots; CLX events; Linux signals; Hook objects; Hooking a QT signal; HookEvents; QWidget_hook; Event filters; MainEventFilter; Qt_hook_hook_events; installEventFilter; Custom events; QEventType; QEventType_ClxUser; QCustomEvent; QApplicarion_sendEvent; QT licensing |
Beating The System: API-Level Programming With Kylix | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Dave Jewell says that the primary aim of this month's column is to widen our vision in terms of what Kylix can do for us. He demonstrates that Kylix will do a lot more than simply create CLX-based applications: it's equally well suited to writing efficient, easily deployable command-line utilities, barefoot X applications, or whatever. There's a whole new universe of APIs to explore here, so get stuck in! | ||
Keywords | Beating the System; Linux API with Kylix; Kylix architecture; CLX; Qt library; Linux kernel; Kernel interrupt $80; syscall routine in libc.pas; libc.so.6; glibc2 glibc; GNU; dlopen; LD_LIBRARY_PATH; RTLD_LAZY; RTLD_NOW; Undefined symbols; RTLD_GLOBAL; CreateGUID; Creating processes; Managing processes; /proc directory; Linux system call; Fork; Blocking; pid process identifier; X Windows; xlib.pas; libqtintf.so; bplbaseclx; Xlib; X protocol; XCreateWindow; XOpenDisplay; XDefaultRootWindow; XMapWindow; XFlush; __sleep |
Perspectives: Getting To Grips With Palm | |||
---|---|---|---|
Authors | Jim Cooper | Type: Article | |
Issue | 70 : June 2001 | View article | No source code |
Summary | Jim Cooper is a Palm enthusiast and reveals that our Delphi skills are surprisingly handy when developing for these tiny machines. He starts by looking at PDAs in general, then at the major operating systems, before going on to examine what is involved in programming the little devils, and finally outlines what our Delphi experience can bring to the party, in the shape of PocketStudio from Pocket Technologies. | ||
Keywords | Perspectives; Palm palmtop computer; Personal digital assistant; PDA; WinCE Windows CE; Palm versus PocketPC; PalmOS; Graffiti; Handwriting recognition; EPOC Psion; Handspring Visor; Sony Clie; Synchronise Palm and PC; Delphi and Palm; HotSync conduits; Ehand conduit ActiveX; Conduit development kit; Delphi conduit components; Writing Palm applications; Palm applications in Delphi; PocketStudio; Palm OS emulator POSE |
Algorithms Alfresco: Gilding Pale Streams | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Julian Bucknall extends the TStream class in a variety of interesting and useful ways, adding a variety of filters for debugging, regex handling, encryption and more. | ||
Keywords | Algorithms Alfresco; Extending TStream; Streams; File streams; Filter streams; TStream descendants; Read-only filter stream; Buffering filter streams; Bufferred TFileStream; Text filter stream; Parse text into lines; Debug filter stream; Regex filter stream; Regular expressions; Pattern matching; Regular expression bug; Encryption filter stream; Window filter stream; Multiple views of stream |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 70 : June 2001 | View article | No source code |
Summary | The Joy Of TClientDataSet. | ||
Keywords | One last compile... |
Review: CodeSite 2.0 Professional | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 70 : June 2001 | View article | No source code |
Summary | Dave Jewell checks out the new version of Raize Software's debugging aid. | ||
Keywords | CodeSite 2.0 Professional; Review; Raize Components; Ray Konopka; Debugging tools; Diagnostic messages |
Review: SQL Tester | |||
---|---|---|---|
Authors | Richard Stevens | Type: Review | |
Issue | 70 : June 2001 | View article | No source code |
Summary | Richard Stevens examines Red Brook Software's SQL testing utility. | ||
Keywords | SQL Tester; Review; Red Brook Software; Testing SQL statements; BDE, MDAC |
Error Starting Kylix | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Error Starting Kylix | ||
Keywords | Error starting Kylix; Runtime error 230 Kylix; JPEG library compilation; startkylix script; JPEG error #21; jpeglib.h; D_MAX_BLOCKS_IN_MCU; JPEG decompressor; JPG files |
Linux Equivalents Of Win32 APIs | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Linux Equivalents Of Win32 APIs | ||
Keywords | Linux API; Translate Delphi to Kylix; Windows API Linux; Translated Win32 API calls; getlogin security problem; LOGNAME; GetEnvironmentVariable Kylix; getuid get user ID; getpwuid; Do not use cuserid; geteuid; OutputDebugString Kylix; syslog Linux system logging; varargs directive; Variable number of arguments |
Dynamically Choosing COM Objects | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Dynamically Choosing COM Objects | ||
Keywords | Choosing COM objects; Select COM object at runtime; ClassID coclass identifier; Dynamically loading ActiveX; Register ActiveX; DllGetClassObject |
Type Library Editor Quirk | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 70 : June 2001 | View article | View source code |
Summary | Type Library Editor Quirk | ||
Keywords | Type library editor; Underscores on interfaces; Identifier clashes; Tlibimp.sym; Remapping type library names |
Stack-Based Objects In Delphi | |||
---|---|---|---|
Authors | Pedro Agull≤ Soliveres | Type: Article | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Pedro Agull≤ Soliveres demonstrates techniques to optimise object construction and destruction. | ||
Keywords | Stack-based objects; Performance of small objects; Construction small objects; Destruction small objects; GetMem; Optimisation; Initialise VMT pointers; Memory allocation speed; Allocating objects on stack; NewInstance; InitInstance; AfterConstruction; BeforeConstruction; EOutOfMemory; FreeMem; FreeInstance; Stack-based construction; Fast object construction; $A compiler directive; Aligned record fields; InstanceSize; Data alignment |
Algorithms Alfresco: Distribution And Radix Sorts | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Julian Bucknall explains the mysteries of these sorting algorithms that don't use key comparisons to do their work: how they accomplish their tasks and when they will be of best use. | ||
Keywords | Algorithms Alfresco; Distribution sort; Radix sort; Sorting algorithms; Key comparisons; Sort with no key comparison; Performance; Counting sort; Stability of sort; Stable sort; MSD radix sorting; Most significant digit; Insertion sort; LSD radix sort; Least significant digit; Choosing sorting algorithm |
Delphi Meets C# Via COM | |||
---|---|---|---|
Authors | Craig Murphy | Type: Article | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Craig Murphy explains how Delphi can meet the C# language with a little help from COM. With the release of the .NET platform, Microsoft is making C# its language of choice. However, as interoperabilty is becoming more and more important, it is possible to use C# objects in Delphi and vice versa. Craig demonstrates how to use C# and Delphi together and why you may want to. | ||
Keywords | C# language; Using C# with Delphi; .NET framework; ECMA standards; .NET interoperability; Delphi objects with C#; MISL, IL; CLR; Common language runtime; CLS language specification; Managed code; Creating c# object; COM components; COM callable wrapper; Proxy object; Shared name; Digital signature; Global assembly cache; .NET assemblies; Assembly versioning; IL disassembler; regasm.exe type library tool; Runtime callable wrapper RCW; Visual Studio .NET; .NET metadata |
Under Construction: Kylix Desktop Does CGI Too | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Bob Swart shows how to create web server applications using just the Desktop version of Kylix (which has just been dramatically reduced in price!), including using dbExpress to develop database web applications. | ||
Keywords | Under Construction; Kylix; Linux; CGI applications; CGI with Kylix Desktop; Kylix console applications; Apache web server; Web applications; Internet; HTML content-type; text/html; Command line compiler; LD_LIBRARY_PATH; kylixpath script; httpd.conf; REQUEST_METHOD; CONTENT_LENGTH; CGI variables; QUERY_STRING; HTTP_COOKIE; REMOTE_ADDR; SCRIPT_NAME; HTTP_USER_AGENT; PATH_INFO; Environment variables; HTML form variables; CGI unit; GetEnvironmentStrings; Cookies; dbExpress database; Interbase in CGI; TSQLDataSet; TSQLConnection; CLX; Generating HTML; Unidirectional dataset; Cursor; SysUtils.StrToIntDef; Dataset navigation |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 71 : July 2001 | View article | No source code |
Summary | More Joy Of TClientDataSets. | ||
Keywords | One last compile... |
ADO.NET Explored | |||
---|---|---|---|
Authors | Guy Smith-Ferrier | Type: Article | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Guy Smith-Ferrier explains the successor to ADO and shows how to make full use of Microsoft's latest database access technology in Delphi. | ||
Keywords | ADO.NET; .NET framework; Visual Studio .NET Beta 1; XML; ADO+; Remote data services RDS; COM marshaling; COM calls and firewalls; OLEDB classes; Tabular data stream TDS; Regasm.exe utility; Com wrapper for .NET; COMSystemData.dll; System.data assembly; CreateCOMObject; SQLConnection; SQLCommand; SQL Server; DataReader; Read-only cursor; Unidirectional cursor; Firehose cursor; DataSetCommand; oWorkAround; DataAdapter; In-memory database; .NET COM interop layer; DataRelation; Writing ADO.NET data; Import export XML; WriteDiffGram |
Beating The System: Windows XP | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 71 : July 2001 | View article | No source code |
Summary | On Windows XP Dave Jewell has been checking out what the newest version of the Microsoft operating system we all know and love has in store for the folks at the sharp end: developers creating applications for the platform! Keep ahead of the game with Dave's overview. | ||
Keywords | Beating the System; Windows XP; Roxio, Adaptec; CD-R, CD-RW; Visual themes; Window client area; Window non-client area; Comctl32.dll Windows XP; Comctl32 version 6; Non-rectangular windows; Shaped windows; Window transparency effects; Alpha-blending; GDI+; Uxtheme.dll; GetThemeFont; GetThemeMetric; Switching Windows users; Fast user switching; Session switching; Fusion; Side-by-side DLL technology; System file protection SFP; DLL hell; Shared DLL problems; Application manifest; .NET metadata; User experience controls; RT_MANIFEST resource; publicKeyToken; WinSxS; WM_WTSESSION_CHANGE; Remote connects |
What's New In Delphi 6? | |||
---|---|---|---|
Authors | Brian Long | Type: Review | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Brian Long kicks off our in-depth Delphi 6 review double-act with a tour of all that's new in the latest incarnation: what is it, what do you do with it, and is it any good? | ||
Keywords | Delphi 6 overview; Review; Delphi 6 features; BizSnap; SOAP and XML; Web Services; IInvokable; THTTPSoapDispatcher; THTTPSoapPascalInvoker; TWSDLHTMLPublish; WSDL; TXMLDocument; XML document manipulation; XML data binding wizard; XML DOM level 2 parser; XML parsers; XML transformation; WebSnap; Apache web server Windows; SiteExpress; Server-side scripting; ActiveScript languages; Adapter components; TDataSetAdapter; XSL; Web application wizard; Web application debugging; Web app debugger; DataSnap; MIDAS; TSoapConnection; Soap Server data module; ConnectionBroker; TLocalConnection; CORBA; Delphi 6 IDE; Data module designer; Object treeview; Surface designers; Code completion; Docking; Delphi 6 compiler changes; Enumerated types; Writeable typed constants; $WRITEABLECONST; Disable writeable constants; Library directive; Platform directive; $WARN compiler directive; Hint directives; Disable compiler warnings; Variable number of arguments; MSWINDOWS symbol; $MESSAGE compiler directive; $LIBVERSION; $LIBSUFFIX; $LIBPREFIX; $SetPEFlags; PE file header; $SetPEOpt; DLLCharacteristics; CONDITIONALEXPRESSIONS; CHASM inline assembler; COM+; dbExpress; Actions; Custom variants; ConvUtils conversion; Conversion routines; Euro conversion; Shell controls; Windows shell; Internationalisation; Translation tools; External translation manager |
Delphi 6: A Cross-Platform Development Perspective | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 71 : July 2001 | View article | No source code |
Summary | Dave Jewell takes up the reins from Brian to examine the cross-platform aspects of Delphi 6: specifically, the new CLX framework, built on the Qt library, and what performance and deployment issues it raises for Windows developers (hint: there may be some surprises!) | ||
Keywords | Delphi 6 cross-platform; Cross-platform development; Delphi 6 and Kylix; CLX; Linux and Windows; Qt library; Deployment of CLX apps; Qtintf.dll; libqtintf.so; Depends.exe; DLL dependency; Qtintf load address; CLX performance versus VCL; QT 3.0; QueryPerformanceCounter; QueryPerformanceFrequency; SetThreadPriority; Qt performance on Windows |
Missing Debugger Windows | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Missing Debugger Windows | ||
Keywords | Debugger windows; Customise Delphi IDE; Editing desktop file; Retrieve lost windows |
SDF Files | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | SDF Files | ||
Keywords | Reading SDF files; TStrings; System Data Format |
RTTI To The Rescue | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | RTTI To The Rescue | ||
Keywords | RTTI; Resource strings; Does component have caption; Typinfo unit; IsPublishedProp; GetStrProp |
Type Libraries And COM Parameters | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Type Libraries And COM Parameters | ||
Keywords | Type libraries; OLE streams; OLEStream; Interface not accessible; COM programming; IStream, IUnknown |
Hiding From The Windows 95/98/Me Task Manager | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Hiding From The Windows 95/98/Me Task Manager | ||
Keywords | Hiding from task manager; Windows task manager; Windows services; Pseudo-services; RegisterServiceProcess; Simple service application; WM_ENDSESSION; Application.Terminated; ENDSESSION_LOGOFF; HookMainWindow; Window hook; Surviving a user logoff |
Problems With Packages | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Problems With Packages | ||
Keywords | Packages; Recompiling packages |
Update (RTTI and Interfaces) | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 71 : July 2001 | View article | View source code |
Summary | Update (RTTI and Interfaces) | ||
Keywords | RTTI and interfaces |
Preparing For A Terminal Server Environment | |||
---|---|---|---|
Authors | Jani Jarvinen | Type: Article | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Jani JΣrvinen describes how you should prepare your software to work with Microsoft Terminal Services, the remote access system which allows running of applications on the server, only transferring the user interface to the client. A smooth user experience needs special awareness from the software developer: Jani tells us all how to deliver that smooth user experience! | ||
Keywords | Windows terminal services; Multi-user; Multiple desktops; Remote administration; Remote operation; Multiple users; Citrix MetaFrame; Multi-user Windows kernel; Terminal server; TEMP environment variable; HKEY_CURRENT_USER; Registry settings; HKEY_LOCAL_MACHINE; Terminal Services API; WTSEnumerateSessions; WTSAPI32.H; Platform SDK; WTS_CURRENT_SERVER_HANDLE; SM_REMOTESESSION; GetSystemMetrics; Session information; ProcessIDtoSessionID; Process ID, Session ID; WTSFreeMemory |
Under Construction: Delphi 6 Web Services: SOAP | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Web Services is very much the buzz phrase of today and this month Bob Swart shows how to use the new SOAP capabilities of Delphi 6 to create your very own Web Services as easy as pie. | ||
Keywords | Under Construction; Delphi 6 features; Web Services; SOAP; XML; BizSnap; Distributed applications; WSDL; SOAP server application; TWSDLHTMLPublish; THHTPSOAPDispatcher; IInvokable interface; InvokeRegistry; stdcall calling convention; Consuming web services; Calling web services; HTTPRIO component; Remote invokable object; WSDLLocation |
Hackers 101 | |||
---|---|---|---|
Authors | Jason Southwell | Type: Article | |
Issue | 72 : August 2001 | View article | No source code |
Summary | Jason Southwell discusses web security: how to write applications that react appropriately to hacker attacks. He explains how a hacker tries to take control of your code and how to write code in your apps to block these attacks. | ||
Keywords | Hacking; Software security; Security procedures; Creating secure software; Preventing hacking; Packet sniffing; TCP/IP packets; Data sniffing; Natas sniffing tool; Cracking passwords; Social engineering; SSL secure socket layer; Virtual private network; Encryption algorithms; Web page expiration; HTML expires; Browser back button; Expires meta tag; Buffer overrun; Web applications; Internet; EIP register |
Algorithms Alfresco: Squeeze, Please | |||
---|---|---|---|
Authors | Julian Bucknall | Type: Article | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Julian Bucknall returns to the subject of data compression with a new technique which makes use of the rather ingenious Burrows-Wheeler transform to get extra performance out of Huffman encoding. | ||
Keywords | Algorithms Alfresco; Data compression; Burrows-Wheeler transform; Huffman encoding; Deflate algorithm, Deflate64; Huffman tree; NP-complete problem; Block transform; LX77, Zip; Move-to-front algorithm; Move to front algorithm; Jon Bentley; Decompression |
Dynamic Web Images With Kylix | |||
---|---|---|---|
Authors | Bob Swart (aka Dr.Bob) | Type: Article | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Bob Swart shows how to create images on the fly from databases in Kylix CGI applications using Kylix Desktop. | ||
Keywords | Dynamic web images; Kylix desktop developer; Web applications; Internet; Linux; Apache web server; Generating dynamic images; Blob fields; TGraphicField.AsString; Binary data; BMP bitmap format; Netscape and BMP bitmaps; Biolife table images; Converting BMP to JPEG JPG; CGI applications |
One Last Compile... | |||
---|---|---|---|
Authors | Type: Article | ||
Issue | 72 : August 2001 | View article | No source code |
Summary | Bad news from DCon | ||
Keywords | One last compile... |
Beating The System: Strings Unstrung | |||
---|---|---|---|
Authors | Dave Jewell | Type: Article | |
Issue | 72 : August 2001 | View article | No source code |
Summary | Dave Jewell wants to put strings to bed: specifically how Delphi implements long strings and the ramifications of this for your own code. | ||
Keywords | Beating the System; String types; AnsiString; ShortString; Pascal string type; Allocating string data; String initialisation; String finalisation; InstanceSize; DCUExplorer; Disassemble DCU files; Local and global scope; AnsiString implementation; String function results; Passing string arguments; UniqueString; @LstrClr; SafeGuards; JEDI code library |
Perspectives: Microsoft TechEd 2001 | |||
---|---|---|---|
Authors | Chris Frizelle | Type: Article | |
Issue | 72 : August 2001 | View article | No source code |
Summary | Chris Frizelle reports back from Microsoft's annual techno-bash. This year your intrepid Editor braved squid and octopus by the bucket-load in sunny Barcelona to bring you the latest on what is setting hearts a-flutter back in Redmond at MS HQ. | ||
Keywords | Perpsectives; Microsoft TechEd Europe 2001; .NET; XML; SOAP; Web Services; WSDL, UDDI; Visual Studio .NET; C# language; ASP.NET; MSF; Solutions framework |
Titanium 2.0 | |||
---|---|---|---|
Authors | Dave Jewell | Type: Review | |
Issue | 72 : August 2001 | View article | No source code |
Summary | Dave Jewell checks out this new software security package from BitArts: is it truly uncrackable, will it genuinely increase your software sales revenues? Dave has the answers. | ||
Keywords | Titanium 2.0; Review; BitArts; Software security; Software protection; Piracy; Encryption; EXE wrapper; Authentication; Mutation engine; Selling software; Secure transactions |
GExperts 1.0 | |||
---|---|---|---|
Authors | Primoz Gabrijelcic | Type: Review | |
Issue | 72 : August 2001 | View article | No source code |
Summary | Primoz Gabrijelcic evaluates this freeware package of add-in experts for Delphi to see if it really will make your development work easier and smoother. | ||
Keywords | GExperts 1.0; Review; Delphi IDE experts; Gerald Nunn; Erik B Berry; Generating experts |
Bug With Global Variables? | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Bug With Global Variables? | ||
Keywords | Global variables; Variable initialisation; Local variables |
Record Property Issues | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Record Property Issues | ||
Keywords | Record properties; Assign to record properties; Updating record properties; Record property |
Delphi ToolBar Problem | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Delphi ToolBar Problem | ||
Keywords | Delphi IDE toolbar problem; Delphi 5; IDE loses toolbar custom; Lost toolbar customisation; Save IDE toolbar status; Registry |
AVs When Destroying Components | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | |||
Keywords | Destroying components; Access violation; Free or Destroy |
Word Automation Query | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Word Automation Query | ||
Keywords | Microsoft Word automation; Insert Tab character; Automation servers |
Reading Excel Spreadsheets | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Reading Excel Spreadsheets | ||
Keywords | Reading Excel spreadhseet; Automation; TExcelApplication; Member not found error; VBA; Visual Basic; TExcelWorksheet |
Updates | |||
---|---|---|---|
Authors | Brian Long | Type: Clinic | |
Issue | 72 : August 2001 | View article | View source code |
Summary | Updates | ||
Keywords | Updates; MoveFileEx; MoveFile_Delay_UntilReboot; Windows NT; Sending email; MAPI; TNMSMTP |